JOIN用法有錯嗎
function select_pmacm($data){
$PersonID = $data->PersonID;
$this->load->database();
$this->db->select('*');
$this->db->where('PersonMaster.PersonID =',$PersonID);
$this->db->from('PersonMaster');
$this->db->join('AssocChairMan', 'AssocChairMan.PersonID = PersonMaster.PersonID ');
$query = $this->db->get();
return $query;
}
為什麼都Fatal error: Call to a member function result() on a non-object in
是少了什麼雙引號或是單引號嗎? 你查寻的结果是单条条数据,因为你用了where("id",$id);
所以,你的结果只能用$query->row()返回对象,或是用$query->row_array()返回数组。
你用了result()所以错了。
如果返回的结果是多条数据,如你的例子中,把where那行代码去掉,就是用$query->result()再用foreach循环输出
:) 用了result()什麼意思有點不太點懂可以打段程式告訴我那裡錯了嗎 我在Controllers這樣寫
$this->load->model('modelacm');
$query['data'] = $this->modelacm->select_acm($data);
$this->load->view('view_acmdata',$query);
$this->login_acm();
在Model
function select_acm($data)
{
$PersonID = $data->;PersonID;
$Status = $data->Status;
$AssocChairType = $data->AssocChairType;
$AssocChairManID = $data->AssocChairManID ;
$this->load->database();
$this->db->select('*');
$this->db->where('"AssocChairMan"."PersonID" = ',$PersonID);
$this->db->or_where('"AssocChairMan"."Status" = ',$Status);
$this->db->or_where('"AssocChairMan"."AssocChairType" = ',$AssocChairType);
$this->db->or_where('"AssocChairMan"."AssocChairManID" = ',$AssocChairManID);
$this->db->from('AssocChairMan');
$this->db->join("AssocChairMan", "AssocChairMan.PersonID = PersonMaster.PersonID");
$query = $this->db->get();
return $query;
}
在view
foreach($data->result() as $row){
echo '<TD align=left>';
echo$row->;PersonID;
echo'</TD>';
echo '<TD align=left>';
echo$row->ChineseName;
echo'</TD>';
echo '<TD align=left>';
echo$row->Sex;
echo'</TD>';
echo '<TD align=left>';
echo$row->Status;
echo'</TD>';
}
不過還是出現錯誤!
是在view的foreach($data->result() as $row)這一段
是那裡出了錯!!
我不太懂妳說的意思
[ 本帖最后由 kfrico 于 2008-11-6 00:30 编辑 ] 嗯
在view的foreach($data->result() as $row)這一段
改为:
foreach($data->row() as $row)
原因,$data->result()是在抓到多个record时用的
但是,你的只是抓1条record,所以用$data->row()
Good luck Call to a member function row() on a non-object in
照你說的改成foreach($data->row() as $row)
還是一樣錯誤
怎麼會這樣!
困擾好幾天了都找不出原因! 你可以将sql执行结果打出来看看,是个什么类型,再输出 什麼意思?該怎麼打? $this->db->where('"AssocChairMan"."PersonID" = ',$PersonID);
如果你的PersonID是prime key,那么你抓到的record只有一条,那么用
$row = $data->row();
echo$row->PersonID;
就用不到foreach巡回了
如果不是主键,确实可能返回多条记录的话要用foreach($data->result() AS $row)...
你也可以用var_dump($data);看看$data到底返回的是什么 PersonID是prime key是沒錯但是我在它為空值時or_where其他的條件
確實可能返回多條記錄
它反迴bool(false)
是那裡出了錯?
页:
[1]
2