|
|
|
| Всем доброго времени суток.
Возник вопрос по циклам связанным с выводом данных из БД.
Создал функцию, которая получает запрос, сейчас для теста добавлено 2 записи.
function lister() { // Функция вывода
global $sql;
$sql = mysql_query($sql) or die(mysql_error());
$row = array();
while ($row[] = mysql_fetch_assoc($sql));
return $row;
}
$lister = "lister";
|
Затем вывожу данные так
<? foreach ($cat as $r): ?>
<div class='str'>
<div class='td'><?=$r[name]?></div>
<div class='td'><?=$r[url]?></div>
</div>
<? endforeach; ?>
|
Но проблема в том, что хотя в БД 2 записи, цикл foreach выводит 3 записи, одна из которых пустая!
Как решить такой трабл? | |
|
|
|
|
|
|
|
для: kapitalist
(28.04.2016 в 09:48)
| |
<?php
$result = mysql_query(...);
while(($resultArray[] = mysql_fetch_assoc($result)) || array_pop($resultArray));
?>
|
| |
|
|
|
|
|
|
|
для: KPETuH
(28.04.2016 в 11:20)
| | Спасибо, помогло!
Но, вы могли бы для таких, как я объяснить, по шагам?
Т.е. принцип я понял, но почему такое решение правильное? | |
|
|
|
|
|
|
|
для: kapitalist
(28.04.2016 в 11:59)
| | Я просто воспользовался поиском и в первом же каменте к
нашел ответ
http://php.net/manual/ru/function.mysql-fetch-assoc.php | |
|
|
|
|
|
|
|
для: kapitalist
(28.04.2016 в 09:48)
| | Как решить такой трабл?
Не заводить в базе пустых записей. | |
|
|
|
|
|
|
|
для: confirm
(28.04.2016 в 13:58)
| | он их не в базе заводит, а в цикле.
while завершится уже после того, как false окажется добавлено в массив. | |
|
|
|