Aspire
Koineks
  • 06-02-2014, 09:43:00
    #1
    1/2
    Arkadaşlar selam,

    yaptırmak istediğim olay alt aşağıdaki veritabanı tablosundaki kategori ve alt kategorileri listeletmek.


    veritabanı tabloların bu şekilde.

    Kategoriler alt alta olacak altkategorilerde kendi üst kategorilerin altında yer alacak şekilde listelemek istiyorum ama düzenleyemedim bir türlü.



    görüldüğü gibi hepsi alt alta geliyor aslında alt kategori olarak kendi üst kategorilerin altında olacak şekilde nasıl listeleyebilrim ?

    Aşağıda kod düzenini gönderiyorum bu şekilde hepsi alt alta geliyor

    <?
    $katQ = mysql_query("SELECT * FROM altkategoriler ORDER BY  kategori_adi");
    $katS = mysql_num_rows($katQ);
    $sayac = 0;
    while($katF = mysql_fetch_array($katQ))
     {
      $katID[$sayac] = $katF["kat_id"];
      $katIsim[$sayac] = $katF["kategori_adi"];
      $sayac++;
     }
    $dongu1 = $katS / 3;
    $dongu2 = $dongu1 * 2;
    ?>
    
    <?
    for($i=0;$i<$katS;$i++)
     echo("• <a href=\"kategori.php?id=".$katID[$i]."\">".$katIsim[$i]."</a><br>");
     echo("			• <a href=\"kategori.php?id=".$katID[$i]."\">".$katIsim[$i]."</a><br>");
    ?>
    Şimdiden teşekkürler.
  • Sponsor Reklam
  • 06-02-2014, 19:35:49
    #2
    1/2
    PHP- Kodu:
    $categories = array();

    $sql "SELECT * FROM altkategoriler";
    $res mysql_query($sql);
    while (
    $row mysql_fetch_assoc($res)) {
        
    $parent intval($row['kategori_ustid']);
        if (!isset(
    $categories[$parent])) {
            
    $categories[$parent] = array();
        }
        
    $categories[$parent][] = $row;
    }
    $category_string "";
    function 
    build_categories_options($parent$categories$level) {
        global 
    $category_string;
        if (isset(
    $categories[$parent]) && count($categories[$parent])) {
            
    $level .= " - ";
            foreach (
    $categories[$parent] as $category) {
                
    $opt_value substr($level.$category['kategori_adi'],3);
                
    $category_string .= '<option value="'.$category['kat_id'].'">'.$opt_value.'</option>';
                
    build_categories_options($category['kat_id'], $categories$level);
            }
            
    $level substr($level, -3);
        }
        return 
    $category_string;
    }
    $category_options build_categories_options(0$categories'');
    $category_options '<select name="kategori" id="kategori">'.$category_options.'</select>';
    echo 
    $category_options
    http://stackoverflow.com/questions/1...sub-categories
  • 06-02-2014, 19:41:53
    #3
    1/2
    Şöyle bir mantık kurulabilir.

    Kategoriler tablomuz olsun, tıpkı sizin gibi ID, ISIM ve ANAID'si sütunları olsun. Şimdi bir kategori eğer ana kategori olacaksa yani üst kategorisi olmayacaksa ANAID değeri sıfır olsun. Daha sonra ilk ana kategorileri getirirsiniz daha sonra gelen ana kategorilerin ID'lerini tekrar sorgulatır ve o ID'ye sahip alt kategorileri getirirseniz.


    Bu arada lütfen artık mysql kullanmayın çünkü bu fonksiyonu artık taş çağından sayabiliriz.