Окей, так это моя проблема.У меня есть структура страницы, сохраненная в MySQL базы данных.Например:
Page 1
- SubPage 1.1
- - SubPage 1.1.1
- - - SubPage 1.1.1.1
- - - SubPage 1.1.1.2
-- SubPage 1.1.2
- SubPage 1.2
- SubPage 1.3
Страница 2
Страница 3
Структура может иметь бесконечные страницы и подстраницы.На всех страницах есть поля с именами «url» и «childof».«childof» - это то, что связывает страницу как подстраницу другой.
Пример: Страница 1 имеет «url» page-1, а «childof» пуста
SubPage 1.1 имеет «url» subpage-1-1 и "childof" page-1
SubPage 1.1.1 имеют "url" subpage-1-1-1 и "childof" subpage-1-1
Надеюсь, вы поняли основную идею.
Моя проблема - сделать цикл для вывода всех этих страниц в один хороший массив.
Получить первую строку страниц легко;
$sql = "SELECT * FROM `page` WHERE `childof` = ''
ORDER BY `id` DESC";
$result = mysql_query($sql);
$i=0;
while ($row = mysql_fetch_assoc($result)) {
$pages[$i]['id'] = $row['id'];
$i++;
}
ПолучитьВо второй строке все просто ...
for($x=0; $x < sizeof($pages); $x++){
$sql = "SELECT * FROM `page` WHERE `childof` = '".$pages[$x]['url']."'
ORDER BY `id` DESC";
$result = mysql_query($sql);
$i=0;
while ($row = mysql_fetch_assoc($result)) {
$pages[$x]['children'][$i]['id'] = $row['id'];
$i++;
}
}
И, конечно, я мог бы продолжать в том же духе.Но сделать это, не зная, сколько существует подстраниц, не очень эффективно.Итак, как сделать цикл для извлечения всех страниц и подстраниц в массив с хорошей структурой?
Спасибо!