За последние 24 часа нас посетили 18825 программистов и 1644 робота. Сейчас ищет 891 программист ...

троит первый комментарий в древовидных комментариях

Тема в разделе "Прочие вопросы по PHP", создана пользователем Vantedur, 26 июл 2010.

  1. Vantedur

    Vantedur Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    779
    Симпатии:
    2
    в общем трабл такой, троит первый комментарий добавленный в пост. тоесть в бд 1 а на сайте выводит какую-то ботву
    код вывода скрипта

    PHP:
    1.  
    2. $query = mysql_query("SELECT * FROM ******* WHERE `unswer`='".$_GET['novost']."'");
    3.  
    4. $dataset = array();
    5.  
    6. while($check = mysql_fetch_array($query)) {
    7.         $autor = $check['autor'];
    8.         $data = $check['data'];
    9.         $mama = $check['id'];        
    10.     $parent = $check['postnumb'];
    11.     if ($parent == 0) $parent = null;
    12.  
    13.     $dataset['id'] = $check['id'];
    14.     $dataset[$check['id']]['mama'] = $mama;
    15.     $dataset[$check['id']]['data'] = $data;
    16.     $dataset[$check['id']]['parent'] = $parent;
    17.     $dataset[$check['id']]['text'] = $check['comment'];
    18. }
    19.  
    20. $tree = mapTree($dataset);
    21. display_tree($tree);
    22.  
    23. function mapTree($dataset) {
    24.     $tree = array();
    25.     foreach ($dataset as $id=>&$node) {
    26.         if ($node['parent'] === null) {
    27.             $tree[$id] = &$node;
    28.         } else {
    29.             if (!isset($dataset[$node['parent']]['children'])) $dataset[$node['parent']]['children'] = array();
    30.             $dataset[$node['parent']]['children'][$id] = &$node;
    31.         }
    32.     }
    33.    
    34.     return $tree;
    35. }
    36. ?>
    37. <script type="text/javascript">
    38. $(document).ready(function() {
    39.     $(".form_answer").hide();
    40.     $(".show_form_answer").click(function() {
    41.         $(this).parent().find('.form_answer').slideToggle();
    42.     })
    43. })
    44. </script>
    45. <?php
    46. function display_tree($nodes, $indent=0) {
    47.     if ($indent >= 20) return;
    48.    
    49.     foreach ($nodes as $node) {
    50.         echo '<table><tr>';
    51.         $nbsp = $indent * 30;
    52.  
    53.         echo '<td width="'.$nbsp.'px" align="left"></td>';
    54.         echo '<td algin="left">'.$node['text'].'</td>';
    55.         echo "</tr><tr><td colspan='3'>";
    56.         echo ' <tr><td  ><table width="'.$nbsp.'px" ></table></td><td style="width:100%; padding-bottom:10px;"><a href="" class="show_form_answer" onclick="return false;">Ответить</a>
    57.        <form class="form_answer" action="http://vtrigazety.ru/addcom.php?post='.$_GET['novost'].'&child='.$node['mama'].'&home='.$_GET['blog'].'" method="post"><table style="width:100%;"><tr><td>
    58.        <input type="hidden" id="'.$node['id'].'">
    59.        <textarea id="text" name="text" style="width:100%; height:200px; text-align:left;"></textarea></td></tr><tr><td>
    60.        <input type="submit" value=" добавить " /></td></tr></table>
    61.         </form></td></tr>';
    62.         echo "</td></tr></table>\r\n";
    63.         if (isset($node['children']))
    64.             display_tree($node['children'],$indent+1);
    65.     }
    66. }
    пример косяка http://jquery.vtrigazety.ru/&novost=1

    пример с несколькими комментариями http://jquery.vtrigazety.ru/&novost=4

    Удевительно то что даже призраку можно ответить

    бд
    [​IMG]
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    у меня не троит
     
  3. Vantedur

    Vantedur Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    779
    Симпатии:
    2
  4. Vantedur

    Vantedur Активный пользователь

    С нами с:
    9 июл 2010
    Сообщения:
    779
    Симпатии:
    2