2013-08-25 5 views
0

нет проблемы с этим запросом, так как при использовании print_r он печатает три разных массива, мне просто интересно, что здесь отсутствует здесь, чтобы получить это foreach, так как на данный момент Im получает сообщение об ошибке .. .Недопустимый аргумент для foreach

Внимание: Недействительный аргумент для Еогеаспа() в C: \ XAMPP \ HTDOCS \ MyShop \ администратор \ account_list.php на линии 11

<?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>'; 
?> 

ответ

4

Как бы то ни было, вы не звоните foreach до тех пор, пока запрос не будет завершен, и в это время $final_result будет FALSE. foreach (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

'$ result = $ final_result;' отсутствует внутри цикла. +1 за хороший ответ –

+0

Исправлено, спасибо большое. –

0

$final_result не является массив, а элемент из массив, вместо того, чтобы просто писать -

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

'fetch_array' вернуть одну строку, так что для этого ответа, чтобы быть правильным, вам нужно использовать' fetch_all' вместо этого. –