Функция возвращает ошибку.

Alex75

Новичок
Вот часть кода вывода комментариев
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;
}
она работает прекрасно если в базе есть хотя бы один комментарий. Если комментариев еще нет то возвращается ошибка: Warning: Invalid argument supplied for foreach(). Подскажите пожалуйста как избавиться от этой ошибки. Я всю голову сломал уже.
 

Alex75

Новичок
Да, передается не правильный аргумент. Нужно перед function mapTree вставить какую то проверку, но я не знаю как это сделать.
 
Сверху