За последние 24 часа нас посетили 19053 программиста и 1603 робота. Сейчас ищут 1129 программистов ...

Вывод из базы вложенным циклом

Тема в разделе "MySQL", создана пользователем shmarovoz, 23 окт 2011.

  1. shmarovoz

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

    С нами с:
    3 янв 2011
    Сообщения:
    8
    Симпатии:
    0
    Всем привет, прошу помощи вот с какой проблемой. У меня есть код, который выводит места(кружочки), у каждого кружочка есть свой ряд и свой номер. В базе хранятся записи о том, на какие кружочки нажали, их ряд и место.
    Я пытаюсь сделать так, чтобы за один запрос все данные о том, на какие кружочки нажали, записывались в массив и уже потом в цикле проверяю нажимали ли на этот кружочек. Проблема в том, что вложенный цикл do...while почему-то работает всего один раз 0_о.
    Кто знает, что это такое и как эту проблему решить?

    Мой код:

    PHP:
    1. // ====ВЫВОД
    2. echo "<div id='par'>";
    3. $ryad = 1;
    4. $mesto = 1;
    5. $leftc = 0;
    6. $topc = 5;
    7. $margin = -7;
    8.  
    9.  
    10. $result = mysql_query("SELECT * FROM br WHERE vu='$id' AND place='par'");
    11. $myrow = mysql_fetch_array($result);
    12.  
    13. for ($i=1;$i<=442;$i++)
    14. {
    15. if ($mesto < 10) { $margin = -2;}
    16. if ($mesto >= 10 && $mesto < 19) {$margin = -6;}
    17. if ($mesto > 19) { $margin = -5;}
    18. if ($mesto == 1) { $margin = -3;}
    19.  
    20. do
    21. {
    22. if ($myrow['ryad'] == $ryad && $myrow['mesto'] == $mesto)
    23.    {
    24.       if ($myrow['status'] == 'o') {$circle = "circleo"; $title = "Желтый";}
    25.       if ($myrow['status'] == 'p') {$circle = "circlep"; $title = "Красный";}
    26.    }
    27.      else
    28.    {
    29.       $circle = "circle parcircle";
    30.       $title = 'Свободный';
    31.    }
    32. }
    33. while ($myrow = mysql_fetch_array($result));
    34.  
    35. echo '
    36. <div class="'.$circle.'" style="left:'.$leftc.'px; top:'.$topc.'px;" title="'.$title.'"><span class="textincircle" style="width:12px;height:12px;left:50%;top:50%;position:absolute;margin-top:'.$otsuptextincircle.'px;margin-left:'.$margin.'px"> '.$mesto.' </span></div>
    37. ';
    38.  
    39. $mesto++;
    40. if ($mesto == 9 || $mesto == 19) { $leftc = $leftc + 50;} else { $leftc = $leftc + $shuruna;}
    41. if ($mesto == 27) { $topc = $topc+$vusota; $leftc = 0; $mesto = 1; $ryad = $ryad + 1;}
    42. if ($i == 208) { $topc = $topc + 25; }
    43. }
    44. echo "</div>";
    45. // ====КОНЕЦ
     
  2. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    попов-стиль обнаружен.

    цикл может и несколько раз выполняется, только вывод вы делаете за циклом, а не внутри.