web-dev-qa-db-ger.com

CodeIgniter Select Query

Ich habe eine einfache CodeIgniter Active-Datensatzabfrage, um eine ID auszuwählen:

$q = $this -> db
           -> select('id')
           -> where('email', $email)
           -> limit(1)
           -> get('users');

Wie kann ich die obige ID einer Variablen zuweisen (z. B. $ id) Zum Beispiel 

echo "ID is" . $id;

Vielen Dank.

9
Roman

Das ist ganz einfach. Hier ist zum Beispiel ein Zufallscode von mir: 

function news_get_by_id ( $news_id )
{

    $this->db->select('*');
    $this->db->select("DATE_FORMAT( date, '%d.%m.%Y' ) as date_human",  FALSE );
    $this->db->select("DATE_FORMAT( date, '%H:%i') as time_human",      FALSE );


    $this->db->from('news');

    $this->db->where('news_id', $news_id );


    $query = $this->db->get();

    if ( $query->num_rows() > 0 )
    {
        $row = $query->row_array();
        return $row;
    }

}   

Dadurch wird die von Ihnen ausgewählte "Zeile" als Array zurückgegeben, sodass Sie wie folgt darauf zugreifen können: 

$array = news_get_by_id ( 1 );
echo $array['date_human'];

Ich würde auch dringend raten, nicht zu verketten die Abfrage wie Sie. Habe sie immer separat wie in meinem Code, was deutlich einfacher zu lesen ist. 

Beachten Sie auch, dass wenn Sie den Tabellennamen in from () angeben, rufen Sie die Funktion get () ohne Parameter auf

Wenn Sie es nicht verstanden haben, fragen Sie einfach :)

17
Herr

verwenden Sie Ergebniszeilen .
row () method gibt eine einzelne Ergebniszeile zurück.

$id = $this 
    -> db
    -> select('id')
    -> where('email', $email)
    -> limit(1)
    -> get('users')
    -> row();

dann können Sie einfach verwenden, wie Sie möchten. :)

echo "ID is" . $id;
2

ein kurzer Weg wäre 

$id = $this -> db
       -> select('id')
       -> where('email', $email)
       -> limit(1)
       -> get('users')
       -> row()
       ->id;
echo "ID is ".$id;
2
Raza Ahmed
function news_get_by_id ( $news_id )
{

    $this->db->select('*');
    $this->db->select("DATE_FORMAT( date, '%d.%m.%Y' ) as date_human",  FALSE );
    $this->db->select("DATE_FORMAT( date, '%H:%i') as time_human",      FALSE );


    $this->db->from('news');

    $this->db->where('news_id', $news_id );


    $query = $this->db->get();

    if ( $query->num_rows() > 0 )
    {
        $row = $query->row_array();
        return $row;
    }

}   
This 
1
user4225743

echo $ this-> db-> select ('Titel, Inhalt, Datum') -> get_compiled_select ();

0
Arnold Machado
public function getSalary()
    {
        $this->db->select('tbl_salary.*,tbl_employee.empFirstName');
        $this->db->from('tbl_salary');
        $this->db->join('tbl_employee','tbl_employee.empID = strong texttbl_salary.salEmpID');
        $this->db->where('tbl_salary.status',0);
        $query = $this->db->get();
        return $query->result();
    }
0
Saravanan

Dies ist dein Code

$q = $this -> db
       -> select('id')
       -> where('email', $email)
       -> limit(1)
       -> get('users');

Versuche dies

$id = $q->result()[0]->id;

oder dieses ist es einfacher

$id = $q->row()->id;
0
Vindicated
$query= $this->m_general->get('users' , array('id'=> $id ));
echo $query[''];

ist in Ordnung ;)

0
Steve Sharax

Wenn Sie codeIgniter Framework verwenden, verweisen Sie auf diesen Link für aktive Datensätze. wie die Daten mit der Struktur interagieren und mehr.

Mit den folgenden Funktionen können Sie SQL SELECT-Anweisungen erstellen. 

Daten auswählen

$ this-> db-> get ();

Führt die Auswahlabfrage aus und gibt das Ergebnis zurück. Kann allein verwendet werden, um alle Datensätze aus einer Tabelle abzurufen:

$query = $this->db->get('mytable');

Mit Zugang zu jeder Reihe

$query = $this->db->get('mytable');

foreach ($query->result() as $row)
{
    echo $row->title;
}

Wo Hinweise

$this->db->get_where();

Z.B:

 $query = $this->db->get_where('mytable', array('id' => $id), $limit, $offset);

Feld auswählen

$this->db->select('title, content, date');

$query = $this->db->get('mytable');

// Produces: SELECT title, content, date FROM mytable

Z.B

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); 
$query = $this->db->get('mytable');
0
Ravi Chauhan