merhaba arkadaşlar direk konuya giriyorum,
bu benim databasede ki kategori tablosunun içeriği, parent_id 'si 0 olanlar ana kategoriler oluyor, 0 dan farklı olanlar ise parent_id'de ki değer neyse o id li kategorinin alt kategorisi oluyor. Demek istediğimi anlamışsınızdır, bu sayede sonsuz alt kategori ve ana kategori oluşturabiliyorum, herneyse devam edelim:
<select size="1" name="parentcat">
<option value='0'>-</option>
<?
$al=mysql_query("select * from taxonomy where parent_id='0' order by id desc");
while($ver=mysql_fetch_array($al))
{
echo "<option value='".$ver["id"]."'>".$ver["name"]."</option>";
$al2=mysql_query("select * from taxonomy where parent_id='".$ver["id"]."' order by id desc");
while($ver2=mysql_fetch_array($al2))
{
echo "<option value='".$ver2["id"]."'> > ".$ver2["name"]."</option>";
$al3=mysql_query("select * from taxonomy where parent_id='".$ver2["id"]."' order by id desc");
while($ver3=mysql_fetch_array($al3))
{
echo "<option value='".$ver3["id"]."'> > ".$ver3["name"]."</option>";
}
}
}
?>
</select>bu kodu çalıştırdığım zaman aşağıda ki select box'ımı elde etmiş oluyorum, gördüğünüz gibi sıralamalar ana kategoriler, onların altında alt kategoriler ve varsa o alt kategorilerin alt kategorileri şeklinde sıralanmış. Örneğin : Kütüphane : ana kategori, Katalog arama : kütüphanenin alt kategorisi, Yazar adına göre arama ise katalog aramanın alt kategorisi. aşağıda ki comboboxda da göreceğiniz üzere.
şimdi gelelim benim sorunuma, yukarda ki php koduna bakarsanız eğer, 3 tane içiçe mysql sorgusu yaptım ana kategori, onun alt kategorisi ve alt kategorinin alt kategorisini çekmek için. çünkü ben biliyorum ki maximum 3 kategori ilerledim database de ki kategori tablomda. f
Fakat ilerde bu alt kategori olayını abarttım diyelim, alt alta 10 20 tane kategori açtım diyelim. o zaman ne olacak ? içiçe 20 mysql_query sorgusu yapmak çok mantıksız geliyor bana. hem kod çöplüğüne dönecek hem de aşırı bir mysql yorulması olacak eminim. bu konuda sizlerin fikirlerinizi almak istedim. php olması gerekmiyor yapabilen varsa javascriptle , ajaxla falan yapılıyorsa çözüm önerilerinizi öğrenmek isterim.