Alex75
Новичок
Вот часть кода вывода комментариев
она работает прекрасно если в базе есть хотя бы один комментарий. Если комментариев еще нет то возвращается ошибка: Warning: Invalid argument supplied for foreach(). Подскажите пожалуйста как избавиться от этой ошибки. Я всю голову сломал уже.
PHP:
$sql = ("SELECT id, post, parent_id, name, comment,
DATE_FORMAT(date_add, '%d %M %Y %H:%i') as date_add
FROM comments WHERE post='$id_mess'");
$query = mysql_query($sql);
while($row = mysql_fetch_assoc($query))
{
$data[$row[id]] = $row;
}
/*Функция для создания дерева комментариев */
function mapTree($dataset) {
$tree = array(); // Создаем новый массив
/*
Проходим в цикле по массиву $dataset, который был передан в качестве аргумента.
в $id будет попадать уникальный id комментария,
&$node - обратите внимание, работаем со значением по ссылке!
*/
foreach ($dataset as $id=>&$node) {
if (!$node['parent_id']) { // не имеет родителя, т.е. корневой элемент#000000
$tree[$id] = &$node;
} else {
/*
Иначе это чей-то потомок
этого потомка переносим в родительский элемент,
при этом у родителя внутри элемента создастся массив childs, в котором и будут вложены его потомки
*/
$dataset[$node['parent_id']]['childs'][$id] = &$node; //
}
}
return $tree;
}