Страница 1 из 2

Извращение. Цикл в цикле.

СообщениеДобавлено: 22 фев 2010, 00:22
Zver
Сейчас стараюсь написать простенький скрипт форума.
На главной странице выводятся форумы, и под форумы.
Т.е. в БД есть таблицы:

forums (parent_forum),
forums_themes (forum_id),
forums_posts (theme_id).

Получается вложенная система. При выводе главной странницы у меня считываются основные форумы, тобишь с "parant_id" = 0. А уже под ними форумы, ID которых равен родительскому форуму.

В итоге - у меня выходит цикл в цикле. Можно ли использовать такую систему?
Сам понимаю, брёд, но куда деваться (=

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 22 фев 2010, 02:41
Костик
не понял

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 22 фев 2010, 13:40
Zver
Чорт (=
В общем - у меня при выводе разделов используется два цикла:

Код: Выделить всёРазвернуть
|--- Раздел 1----|
|                |
||- форум 1      |
||- форум 1      |
|                |
|--- Раздел 2----|
|                |
||- форум 3      | Цикл 1 (Форумы выводятся в цикле 2)
||- форум 4      |
|                |
|--- Раздел 3----|
|                |
||- форум 5      |
||- форум 6      |
|----------------|


Т.е. первый цикл выводит все разделы, а второй цикл выводит форумы.
Выходит что у меня получчается цикл в цикле.

И вот только сейчас понял что такая система не работает. Как быть? :(
PS: Циклы "for"

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 23 фев 2010, 00:31
doliar
P.S while ?

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 23 фев 2010, 10:32
Кадет
for, while, do while.
P.S. это не извращение, а в полне рабочий вариант :) Вложенные циклы называется :)

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 24 фев 2010, 14:47
Zver
Заметил что for не работает, а do while дублирует превую запись....

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 24 фев 2010, 16:23
Кадет
Что значит фор не работает?

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 24 фев 2010, 16:36
Zver
Выполняется только первый подцикл, остальные нет..

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 24 фев 2010, 17:38
Кадет
Ну смотри: например с++, синтаксис понятен так что на пхп пости так же:
Код: Выделить всёРазвернуть
for(i=0; i<2; i++)
{
printf('lab1');
for(j=0; j<2; j++)
{
printf('lab2');
}
}

вывод будет что-то типо:
lab1
lab2
lab2
lab1
lab2
lab2

Re: Извращение. Цикл в цикле.

СообщениеДобавлено: 24 фев 2010, 18:21
Zver
Делал так:

Код: Выделить всёРазвернуть


for($i=0; $i<$all_sections; $i++){
   $row_sections = mysql_fetch_array($res_sections);
   echo $row_sections['title']." | ".$row_sections['description']; // Вывод раздела

for($i=0; $i<$all_forums; $i++){
   $row_forums = mysql_fetch_array($res_forums);
   echo $row_forums['title']." - ".$row_forums['date']; // Вывод форумов в данном разделе
}

}
 

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