foreach的参数无效

时间:2013-08-25 16:11:44

标签: php

此查询没有问题,因为当我使用print_r时,它打印出三个不同的数组,我只是想知道我在这里失踪了什么才能让这个foreach工作,就像我得到的那一刻错误......

警告:第11行的C:\ xampp \ htdocs \ myshop \ admin \ account_list.php中为foreach()提供的参数无效

<?php 

$account_list = "SELECT * FROM accounts";
$query = $connect->query($account_list);
while  ($final_result = $query->fetch_array(MYSQLI_ASSOC)) {
// echo '<pre>';
// print_r($final_result);
// echo '</pre>';
}
echo '<table><tbody>';
foreach ($final_result as $result) {
echo '<tr><td>'.$result['id'].'</td>
<td>'.$result['firstname'].'</td>
<td>'.$result['lastname'].'</td>
<td>'.$result['email'].'</td>
<td>'.$result['address'].'</td>';
}
echo '</body></table>';
?>

2 个答案:

答案 0 :(得分:4)

实际上,在查询完成之后,您才会调用foreach,此时$final_resultFALSEforeach (false as $result)确实无效。

你想要结合两个循环:

$account_list = "SELECT * FROM accounts";
$query = $connect->query($account_list);

echo '<table><tbody>';

$final_result = false;

while  ($result = $query->fetch_array(MYSQLI_ASSOC)) {
  // echo '<pre>';
  // print_r($final_result);
  // echo '</pre>';

  $final_result = $result;

  echo '<tr><td>'.$result['id'].'</td>
  <td>'.$result['firstname'].'</td>
  <td>'.$result['lastname'].'</td>
  <td>'.$result['email'].'</td>
  <td>'.$result['address'].'</td>';
}

echo '</body></table>';

答案 1 :(得分:0)

$final_result不是数组,而是数组的元素,而不是只写 -

$final_result = $query->fetch_all(MYSQLI_ASSOC);