web-dev-qa-db-ja.com

CodeIgniter Selectクエリ

IDを選択する簡単なCodeIgniter Activeレコードクエリがあります。

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

上記のIDを変数($ idなど)に割り当てる方法

echo "ID is" . $id;

ありがとう。

10
Roman

それは非常に簡単です。たとえば、ここに私のランダムなコードがあります:

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;
    }

}   

これにより、選択した「行」が配列として返されるため、次のようにアクセスできます。

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

また、強くお勧めします連鎖しないあなたのようなクエリ。私のコードのように、常に別々にそれらを持っている、それは明らかに読みやすいです。

また、from()でテーブル名を指定した場合、パラメーターなしでget()関数を呼び出すにも注意してください。

理解できなかった場合は、お気軽に:)

18
Herr

結果行を使用します。
row()メソッドは単一の結果行を返します。

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

その後、必要に応じて簡単に使用できます。 :)

echo "ID is" . $id;
2

一つの短い方法は

$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( 'title、content、date')-> 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

これはあなたのコードです

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

これを試して

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

またはこれは、より簡単です

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

大丈夫です;)

0
Steve Sharax

codeIgniter Frameworkを使用する場合、このアクティブレコードリンクを参照します。データと構造との相互作用など。

次の関数を使用すると、SQL SELECTステートメントを作成できます。

データの選択

$ this-> db-> get();

選択クエリを実行し、結果を返します。単独で使用して、テーブルからすべてのレコードを取得できます。

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

各行にアクセスできる

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

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

どこが手がかり

$this->db->get_where();

例えば:

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

フィールドを選択

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

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

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

例えば

$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