Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос про вывод комментариев по дате
 
 автор: franko   (18.12.2014 в 09:01)   письмо автору
 
 

Здравствуйте.
Есть вывод древовидных комментариев по дате, все работает.
Но не знаю, как сделать сортировку комментариев у которых есть 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   (18.12.2014 в 09:01)
 

http://veselov.sumy.ua/824-skript-drevovidnyh-kommentariev-php.html

  Ответить  
 
 автор: franko   (19.12.2014 в 17:21)   письмо автору
 
   для: Deed   (18.12.2014 в 22:10)
 

спасибо. скрипт у меня уже есть. если поможете модернизировать нынешний - буду рад.

  Ответить  
 
 автор: lightning.say   (19.12.2014 в 18:39)   письмо автору
 
   для: 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 
"; 

  Ответить  
 
 автор: KPETuH   (19.12.2014 в 17:33)   письмо автору
 
   для: franko   (18.12.2014 в 09:01)
 

сортировать сначала по parent_id потом по дате разве нет?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования