下面是我的模型,它工作正常。现在它返回错误,因为没有新学生的记录。然而,在我的控制器中,我有一个If语句,它检查查询是否返回true,然后循环查询中的每一行:
我的型号:
function get_schedule($Student_ID)
{
$query = $this -> db -> query("
getstuff");
if($query -> num_rows() > 0 )
{
$sections= $query->result();
return $sections;
}
else
{
return false;
}
}
我的控制器:
$Student_ID = $session_data['Student_ID'];
$query['section']= $this->grades_model->get_schedule($Student_ID);
$sections= array();
if ($query == TRUE)
{
foreach($query['section'] as $row)
{
do stuff:
}
}
问题是它给了我一个无效的foreach循环警告,因为没有数据可以循环通过。如果查询返回false,我如何使它甚至不尝试那个循环。我尝试添加elseif($query == FALSE){}
,但foreach循环仍然无效。
什么给出了,我能压制住这个警告吗?
它不是"section"。你应该保持相同的名称$query['sections']
试试这个
$Student_ID = $session_data['Student_ID'];
$query['sections']= $this->grades_model->get_schedule($Student_ID);
if ($query['sections'] == false)
{
echo "error";
}
else
{
foreach($query['sections'] as $row)
{
do stuff:
}
}
TRY
型号
function get_schedule($Student_ID)
{
$query = $this -> db -> query("
getstuff");
if($query -> num_rows() > 0 )
{
$sections= $query->result();
return $sections;
}
else
{
return false;
}
}
控制器:
$this->load->model("Model_name");
$var=$this->Model_name->get_schedule($Student_ID);
if ($var)
{
foreach($var as $row)
{
do stuff:
}
}
编辑:
确保将Model_name
更改为您的,并在您的模型中查询
这行if ($query == TRUE)
没有多大意义,请尝试检查以下内容:
if (isset($query['section']) && count($query['section']) > 0) {
foreach ($query['section'] as $row) {
// do stuff:
}
}
像这样尝试
foreach($query as $row)
{
do stuff:
}
如果$query是一个数组。我认为模型函数在您的情况下返回一个数组。
而且你在犯了一个错误
foreach($query['sections'] as $row) //you did it 'section' try change it
{
do stuff:
}
如果答案有用,则接受
您做得不对$this->db->query()
用于sql查询。您可以使用$this->db->query('select * from getstuff');
或$this->db->get('getstuff');