2013-05-25 5 views
-1

У меня есть таблица в html, которая заполняется бэкэндом mysql. Я продолжаю получать предупреждение «Предупреждение: неверный аргумент, предоставленный foreach()« Я использую функцию php foreach, но это находится внутри моего html. Я пытаюсь сделать if(is_array()) в этом коде, но он, похоже, не работает. Заранее спасибо!PHP foreach warning

  <?php foreach($rows4 as $row4): ?> 

      <tr style=" 
       margin: 0; padding: 0; border-collapse: collapse;" 
      > 

       <td style=" 
        border: 1px solid grey;" 
       > 
        <form action="" method="post"> <?php echo $row4['DispatchTicketDate']; ?> </form> 
       </td> 

       <td style=" 
        border: 1px solid grey;" 
       > 
        <form action="" method="post"> <?php echo $row4['LoginUserName']; ?> </form> 
       </td> 

       <td style=" 
        border: 1px solid grey;" 
       > 
        <form action="" method="post"> <?php echo $row4['DispatchTicketNote']; ?> </form> 
       </td> 
      </tr> 

     <?php endforeach; ?> 
+0

Можете ли вы разместить то, что $ rows4 содержит? –

+0

Просто 'var_dump ($ rows4);' перед тем, как перейти в цикл и посмотреть, что такое вывод. – feeela

+0

Вы можете показать структуру массива ... – sAnS

ответ

0

Прежде чем продолжить, проверьте размер массива:

if (sizeof($rows4) > 0) { 
    foreach($rows4 as $row4): 
    ... 
+0

Спасибо! Это решило мою проблему! –

1

ваш MySQL бэкенд всегда должны возвращать массив, как это:

$rows4 = $db->getAll("SELECT * FROM news WHERE cat=?i", $cat); 

или

$rows4 = $stmt->fetchAll(); 

возвращение пустой массив в случае, если данные не найдены

этот путь у вас никогда не будет такого продукта