2

下面是我的模型,它工作正常。现在它返回 false,因为没有新学生的记录。但是在我的控制器中,我有一个 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 循环警告,因为没有数据可以循环。如果查询返回错误,我怎样才能使它甚至不尝试该循环。我尝试添加elseif($query == FALSE){},但仍然无效的 foreach 循环。

什么给出了,我可以压制那个警告吗?

4

5 回答 5

2

尝试

模型

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为您的并在您的模型中查询

于 2012-08-30T09:35:39.803 回答
2

它不是“部分”。你应该保持相同的名字$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:
  }
 }
于 2012-08-30T09:39:47.557 回答
2

这条线if ($query == TRUE)没有多大意义,尝试检查以下内容:

if (isset($query['section']) && count($query['section']) > 0) {
    foreach ($query['section'] as $row) {
        // do stuff:
    }
}
于 2012-08-30T09:39:58.710 回答
1

像这样试试

foreach($query as $row)
 {
     do stuff:
 }

如果您的 $query 是一个数组。我认为模型函数在您的情况下返回一个数组。

你也犯了一个错误

foreach($query['sections'] as $row)     //you did it 'section' try change it
{
    do stuff:
}

如果有用,请接受答案

于 2012-08-30T09:40:53.580 回答
0

你做错了$this->db->query()用于sql查询。您可以使用$this->db->query('select * from getstuff');$this->db->get('getstuff');

于 2012-08-30T09:31:08.440 回答