Okey, so this is my problem. I have a page structure saved into a mysql db. Like this:
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
Page 2
Page 3
Yapısı sonsuz sayfaları ve alt sayfa olabilir. Tüm sayfalar "url" ve "childof" adında bir alan var. "Childof" Başka bir altsayfaya olarak bir sayfa bağlayan budur.
Example:
Page 1 have "url" page-1 and "childof" is empty
SubPage 1.1 have "url" subpage-1-1 and "childof" page-1
SubPage 1.1.1 have "url" subpage-1-1-1 and "childof" subpage-1-1
Eğer temel fikir olsun umuyoruz.
Benim sorunum iyi bir dizideki tüm bu sayfaları dışarı almak için bir döngü yapmaktır.
Sayfaların ilk satırı almak kolaydır;
$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++;
}
İkinci hat almak kolay aswell ...
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++;
}
}
Ve offcourse böyle gidebiliriz. Ama orada kaç altsayfaları bilmeden bunu yapmak çok verimli değildir. Peki nasıl bir iyi bir yapıya sahip bir dizi içine tüm sayfa ve alt sayfayı almak için bir döngü yapabilirim?
Teşekkür ederiz!