Bir sınırsız kategori sisteminde tıkladığım kategorinin en üst kategorisinden başlayarak tıkladığım kategoriye kadar nasıl yazdırabilirim?
Tablom şu:
k_id k_ust_id k_adi k_sira
1 0 Türk Dili 1
2 0 Türk Edebiyatı 2
3 1 Sözcükte Anlam 1
4 1 Cümlede Anlam 2
5 2 İslamiyet Öncesi Türk Edebiyatı 1
6 2 İslamiyet Sonrası Türk Edebiyatı 2
7 2 Batı Etkisinde Gelişen Türk Edebiyatı 3
8 6 Halk Edebiyatı 1
9 8 Anonim Halk Edebiyatı 1
10 7 Tanzimat Edebiyatı 1
11 8 Aşık Edebiyatı 2
12 1 Yazım Kuralları 3
Kategorileri alt kategorilerle listelemekten bahsetmiyorum, onu şu kodla yapıyoruz:
function kat_sirala ($ust) { $git=mysql_query("SELECT * FROM makalekategorileri WHERE k_ust_id='$ust'");
echo "\n";
while ($getir=mysql_fetch_array($git)) {
echo "- ".$getir[k_adi]."";
$ust_git=mysql_query("SELECT * FROM makalekategorileri WHERE k_ust_id='$getir[k_id]'");
$ust_say=mysql_num_rows($ust_git);
if ($ust_say > 0) {
kat_sirala ($getir[k_id]);
}
echo " \n";
}
echo "
\n";
}
kat_sirala (0);
Ben burda "Anonim Halk Edebiyatı" na tıkladığımda şöyle bir çıktı istiyorum:
Türk Edebiyatı/İslamiyet Sonrası Türk Edebiyatı/Halk Edebiyatı/Anonim Halk Edebiyatı
Sorunu deneye deneye çözdüm arkadaşlar. :)
Yol gösterici kodlarımız şunlar:
$gmk_id=$_GET['gmk_id'];
$gelen_kate=mysql_query("select * from makalekategorileri where mk_id='$gmk_id'");
while($y=mysql_fetch_array($gelen_kate)){
$gmk_id=$y['k_id'];
$gmk_adi=$y['k_adi'];
$gmk_ust_id=$y['k_ust_id'];
}
function yol_bul($ust){
$tumkat=mysql_query("select * from makalekategorileri");
while($d=mysql_fetch_array($tumkat)){
if($d['k_id']==$ust){
$yol_id=$d['k_id'];
$yol_adi=$d['k_adi'];
yol_bul($d['k_ust_id']);
}
}
echo $yol_adi." / ";
}
echo "Makaleler"; yol_bul($gmk_ust_id); echo $gmk_adi;
?>
Amatör olup da böyle şeylere kafa yormak, yoruyor insanı. :)