我是Codeigniter的新手,我仍然围绕着数据库交互。我无法理解为什么这会给我一个错误,我认为它与查询有关,但我可以运行它没有错误直接对数据库。有什么想法吗?
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
foreach ($result->result_array() as $row)
{
echo $row['date'];
echo $row['instructor'];
}
}
添加成功的数据库调用:
public function getListOfInstructors()
{
$query = $this->db->select('member_id, email, group_id')
->where('group_id >', 7)
->limit(10, 20)
->get('exp_members');
return $query->result_array();
}
答案 0 :(得分:0)
错误可能是由于查询(以及结果result()对象)为空。在尝试使用result()对象之前,请确保查询实际返回至少一条记录:
if($query->num_rows() > 0){
return $query->result(); //this thing has to be done in model
}
实际上,必须在视图中完成回声部分,只需要将结果返回给控制器即可 在控制器中加载模型,调用模型函数
$var = $this->model->function();
操纵结果然后传递数据以查看并回显那里
更明确的话,不要在模型中回显任何东西[其中所有查询部分都已完成],只返回查询的结果,以确保我们使用if条件并将结果返回给控制器。
这个模型必须加载到控制器中并从模型中获取那些返回值,以便我们使用 $ this-> load-> model('nameof model');
然后获取这些值并将其保存在变量中
$var = $this->model->function(); //now pass this to view after manipulating it as and echo in view
在你的模型中,你必须这样做
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
$count = count($result);
if(empty($count) || $count > 1)
{
$log = 0;
return $log ;
}
else
{
return $result;
}
}
你的控制器
public function getListOfInstructors()
{
$this->load->model('Name of your model');
$result = $this->Name_of_model->Name_of_function_of_model();
if($result==0) {
echo "Nothing found";
}
else {
$data['var']=$result;
$this->load->view('header');
$this->load->view("your view", $data);
}
}
答案 1 :(得分:0)
您可以修改以下代码:
public function getLastSafetyTraining()
{
$query = "SELECT entry_date as date, field_id_108 as instructor FROM exp_channel_titles t, exp_channel_data d WHERE t.channel_id = 27 AND t.entry_id = d.entry_id";
$result = $this->db->query($query);
print_r($result); die; // this is added line for debug
foreach ($result->result_array() as $row)
{
echo $row['date'];
echo $row['instructor'];
}
}
你可以通过这样做进行调试,如果你不能在这里写出什么输出打印,我会给出你的代码的确切问题。