如何在此声明中仅返回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>';
}
}
它为我提供了所有记录
答案 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来获取非常具体的行值。