在php mysql中的Foreach循环

时间:2016-06-03 09:37:38

标签: php mysql

以下代码可以从DB中检索相关结果。但是当结果为null时,它显示

  

注意:未定义的变量:警告中的myArrayOfemp_id:无效   为foreach()提供的参数。

$result1 = "SELECT leave_id FROM emp_leaves where duty_assign=".$userID;
$array = mysql_query($result1);
$cnt = 0;
while ($row = mysql_fetch_array($array)) {
    $myArrayOfemp_id[$cnt] = $row[0];
    $cnt++;
}
// var_dump($myArrayOfemp_id);

$sql = "SELECT * FROM emp_leaves WHERE ";
foreach ($myArrayOfemp_id as $value)  {
    $sql .= " leave_id={$value} || ";
}
$sql .= "1=2";
$result = mysql_query($sql);
$total_results = mysql_num_rows($result);

如何避免显示该错误。请帮忙!

3 个答案:

答案 0 :(得分:1)

在while循环

之前初始化数组$ myArrayOfemp_id
$myArrayOfemp_id = array();
while ($row = mysql_fetch_array($array)) {
      $myArrayOfemp_id[$cnt] = $row[0];
      $cnt++;
}

答案 1 :(得分:1)

在将它们放入查询之前,您还应确保转义字符串。请参阅此处以获得更好的解释How to include a PHP variable inside a MySQL insert statement

在while循环之前,如果有任何结果,请与mysql_num_rows()核对。

答案 2 :(得分:1)

嗨首先,您使用"1=2"的原因应该是1=1。第二个在使用之前总是定义数组,因此在while循环之前定义$myArrayOfemp_id = array();

为了正确输出,请在执行之前打印$sql。  echo $sql;并在Phpmyadmin

中运行生成的查询