【问题标题】:how to handle php forloop returning no results如何处理php for循环不返回结果
【发布时间】:2015-09-15 05:23:53
【问题描述】:

我正在运行一个 for 循环来从论坛表中收集数据,但如果没有返回结果,我不太确定如何处理它。这是我必须收集数据的代码。

$q = $this->db->query("SELECT * FROM newslist ORDER BY pubdate DESC");
if ($q->num_rows() > 0) {
    foreach ($q->result() as $row) {
        $data[] = $row;
    }
}
return $data; else {
    return echo = "nose";
}

【问题讨论】:

  • 我在下面列出的两种方法中不断收到无效参数

标签: php codeigniter for-loop


【解决方案1】:
$q = $this->db->query("SELECT * FROM newslist ORDER BY pubdate DESC");
$data = array(); // Initialize the array in case there are no records.
if ($q->num_rows() > 0){
  foreach ($q->result() as $row){
    $data[] = $row;
  }
}
if (empty($data)) { // If there are no records, $data will be empty.
  return "nose";
}
else { // If $data has records, will return data from SQL.
  return $data;
}

说明:

1) 初始化$data 变量。如果我们没有得到任何记录,$data 将不会被追加,导致初始化变量$data 返回错误。通过在循环之前对其进行初始化,我们正在克服它。

2) 检查empty() 是否为$data,如果为空,则返回错误字符串,否则为$data

【讨论】:

  • 它的返回:为 foreach() 提供的参数无效
【解决方案2】:

一点点流量问题。请参阅修改后的解决方案。

$q = $this->db->query("SELECT * FROM newslist ORDER BY pubdate DESC");
        if($q->num_rows() > 0){
            foreach($q->result() as $row){
                $data[] = $row;
            }

            return $data;
        } //<-- this was on the wrong line
        else {
            return "No data!";
        }

【讨论】:

    【解决方案3】:

    if 条件内返回您的数据,不要同时使用return and echo

    $q = $this->db->query("SELECT * FROM newslist ORDER BY pubdate DESC");
    if ($q->num_rows() > 0) {
        foreach ($q->result() as $row) {
            $data[] = $row;
        }
        return $data;// return data inside if condition
    }
     else {
        return "nose";// remove echo from here
    }
    

    【讨论】:

      【解决方案4】:

      你可以用这个

      $query = $this->db->query("SELECT * FROM newslist ORDER BY pubdate DESC");
      $result = $query->result_array();
      $count = count($result);// counting data 
      
      if(empty($count))
      {
          $log = 'nose';
          return $log;
      }
      else
      {
          return $result;
      }
      

      【讨论】:

        猜你喜欢
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 1970-01-01
        • 2018-06-05
        • 2010-11-06
        • 2015-10-05
        • 1970-01-01
        相关资源
        最近更新 更多