|
|
|
| Здравствуйте.
Есть вывод древовидных комментариев по дате, все работает.
Но не знаю, как сделать сортировку комментариев у которых есть parent_id по дате.
Вероятно, надо использовать ASC, но куда поставить?
<?php
$sql = "
SELECT id, parent_id, name, comment,
DATE_FORMAT(date_add, '%d %M %Y') as date_add
FROM comment_common
ORDER BY comment_common.date_add DESC
";
$query = mysqli_query($dbc,$sql)
or die('Error querying database.');
while($row = mysqli_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']) { // не имеет родителя, т.е. корневой элемент
$tree[$id] = &$node;
} else {
/*
Иначе это чей-то потомок
этого потомка переносим в родительский элемент,
при этом у родителя внутри элемента создастся массив childs, в котором и будут вложены его потомки
*/
$dataset[$node['parent_id']]['childs'][$id] = &$node; //
}
}
return $tree;
}
?>
|
| |
|
|
|
|
|
|
|
|
для: Deed
(18.12.2014 в 22:10)
| | спасибо. скрипт у меня уже есть. если поможете модернизировать нынешний - буду рад. | |
|
|
|
|
|
|
|
для: franko
(19.12.2014 в 17:21)
| | а если добавить проверку parent_id на NULL?
$sql = "
SELECT id, parent_id, name, comment,
DATE_FORMAT(date_add, '%d %M %Y') as date_add
FROM comment_common
WHERE parent_id is not null
ORDER BY comment_common.date_add DESC
";
|
| |
|
|
|
|
|
|
|
для: franko
(18.12.2014 в 09:01)
| | сортировать сначала по parent_id потом по дате разве нет? | |
|
|
|