在codeigniter上只返回单个记录

时间:2016-03-16 13:53:23

标签: php database codeigniter

如何在此声明中仅返回1条记录?

public function edititem($id){
   $this->db->select('*');
   $query = $this->db->get('tblitem');
   $this->db->where('item_id',$id);

   foreach ($query->result() as $row){
        echo $row->item_id.'</br>';
        echo $row->item_name.'</br>';
        echo $row->item_description.'</br>';
        echo $row->item_price.'</br>';
   }
}

它为我提供了所有记录

5 个答案:

答案 0 :(得分:2)

要获取单行表格,请使用->row()

function edititem($id) {
    $this->db->select('item_id,item_name, item_description,item_price');
    $this->db->where('item_id', $id);
    $this->db->limit(1);// only apply if you have more than same id in your table othre wise comment this line
    $query = $this->db->get('tblitem');
    $row = $query->row();

    echo $row->item_id . '</br>';
    echo $row->item_name . '</br>';
    echo $row->item_description . '</br>';
    echo $row->item_price . '</br>';
}

阅读https://www.codeigniter.com/userguide3/database/results.html

答案 1 :(得分:1)

使用$this->db->limit(1);仅获取1条记录。

答案 2 :(得分:0)

使用这些

方法01 - $this->db->get()

$query = $this->db->get('tblitem' ,1 , 0); # Set Limit

方法02 - $this->db->limit() in CI

$this->db->limit(1);

方法03 - Result Rows in CI

$row = $query->first_row('array');
$row = $query->last_row('array');
$row = $query->next_row('array');
$row = $query->previous_row('array');

这些只会产生一组数据。在foreach循环中,它将始终返回一个

答案 3 :(得分:0)

使用limit,因此sql会返回找到的唯一第一行行,但不会返回整行行。关于获得结果的CI's manual is explicit

这是两个单线解决方案,通过get()

// ... other query conditions
$this->db->limit(1)->get('tblitem')->row()->your_key;

// or with the short syntax for defining limit, through the get:
$this->db->get('tblitem', 1, 0)->row()->your_key;

如果以后需要引用多个值,请将row()的结果赋给变量,以便以后重用。

$row = $this->db->limit(1)->get('tblitem')->row();

答案 4 :(得分:0)

使用此:

<input type="text" value="" class="firstName dependentfield" name="fields[dependents][new2][fields][firstName]">

<input type="text" value="" class="firstName dependentfield" name="fields[dependents][new2][fields][firstName]">

codeigniter用户指南提到了上面的代码。最好的方法就是不需要循环使用foreach来获取非常具体的行值。