За последние 24 часа нас посетили 21042 программиста и 1623 робота. Сейчас ищет 1571 программист ...

многоуровневый вывод из БД

Тема в разделе "PHP и базы данных", создана пользователем DrDRED, 7 апр 2010.

  1. DrDRED

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

    С нами с:
    17 июн 2009
    Сообщения:
    7
    Симпатии:
    0
    Здравствуйте, у меня такая проблема. Есть 4 таблицы: oop_grup, oop_krit, oop_podkrit, oop_gues. Есть скрипт многоуровнего вывода из БД:

    PHP:
    1.  
    2. include ("config.php"); //фаил подключения к базе данных
    3.                 $query = "SELECT * FROM oop_grup";
    4.                 $id_query = mysql_query($query);
    5.                 while (list($id_grup, $title) = mysql_fetch_row($id_query)) {
    6.                     echo "<table border=\"1\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">
    7.                                    <tr>
    8.                                        <td width=\"900\" colspan=\"5\" align=\"center\">
    9.                                            <b> &nbsp; $title </b>
    10.                                        </td>
    11.                                    </tr>";
    12.                     $subquery_1 = "SELECT * FROM oop_krit WHERE id_grup=" . $id_grup;
    13.                     $id_subquery_1 = mysql_query($subquery_1);
    14.                     while (list($id_krit, $title) = mysql_fetch_row($id_subquery_1)) {
    15.                         echo "<tr>
    16.                                        <td colspan=\"5\">
    17.                                            <b> &nbsp; $title </b>
    18.                                        </td>
    19.                                    </tr>";
    20.                                     $subquery_2 = "SELECT * FROM oop_podkrit WHERE id_krit=" . $id_krit;
    21.                     $id_subquery_2 = mysql_query($subquery_2);
    22.                     while (list($id_podkrit, $title) = mysql_fetch_row($id_subquery_2)) {
    23.                         echo "<tr>
    24.                                        <td colspan=\"5\">
    25.                                             &nbsp; $title
    26.                                        </td>
    27.                                    </tr>";
    28.                                    
    29.                        
    30.                         $subquery_3 = "SELECT * FROM oop_ques WHERE id_podkrit=" . $id_podkrit;
    31.                         $id_subquery_3 = mysql_query($subquery_3);
    32.                         echo "<form action=\"smk_handler.php\" method=\"post\">";
    33.                         while (list($id, $title) = mysql_fetch_row($id_subquery_3)) {
    34.                           echo "<tr>
    35.                                <td width=\"350\">
    36.                                    &nbsp; $title
    37.                                    <input type=\"hidden\" name=\"question_$id\" value=\"$id\">
    38.                                </td>
    39.                                <td width=\"349\" align=\"center\">
    40.                                    &nbsp; +3 &nbsp; +2 &nbsp; +1
    41.                                    &nbsp;&nbsp; 0 &nbsp; -1 &nbsp;&nbsp; -2
    42.                                    &nbsp;&nbsp; -3 &nbsp;<br>
    43.                                    <input type=\"radio\" name=\"voting_$id\" value=\"1\">&nbsp;&nbsp;
    44.                                    <input type=\"radio\" name=\"voting_$id\" value=\"2\">&nbsp;&nbsp;
    45.                                    <input type=\"radio\" name=\"voting_$id\" value=\"3\">&nbsp;&nbsp;
    46.                                    <input type=\"radio\" name=\"voting_$id\" value=\"4\">&nbsp;&nbsp;
    47.                                    <input type=\"radio\" name=\"voting_$id\" value=\"5\">&nbsp;&nbsp;
    48.                                    <input type=\"radio\" name=\"voting_$id\" value=\"6\">&nbsp;&nbsp;
    49.                                    <input type=\"radio\" name=\"voting_$id\" value=\"7\">                                            
    50.                                </td>
    51.                            </tr>";  
    52.  
    вывводит все идеально, все хорошо, как надо, но возникла проблема. Все работает если есть все уровни, у меня в БД есть данные кот должны выводиться перепрыгнув одну таблицу например:

    oop_grup
    ...
    oop_krit
    ...
    oop_podkrit
    ...
    oop_ques
    ...
    есть такие записи, их выводит как надо, а есть такие:
    oop_grup
    ...
    oop_krit
    ...
    oop_ques
    ...
    это не работает, помогите пожалуйста, извращался над кодом как мог, не получается((
     
  2. KOM

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

    С нами с:
    21 июл 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Кривой Рог, Днепропетровская
    а LEFT JOIN зачем