• 23-09-2008, 04:16:44
    #1
    merhaba arkadaşlar ekteki gibi bir şey yapmak istiyorum ana sektörleri sektörler tablosundan alt sektörleri alt_sektorler tablosundan çekmekte.

    alt_sektorler tablosunun yapısı

    id
    sektor_id
    alt_sektor

    sektorler tablosunun yapısı

    id
    sektor

    mantıken yapılması gereken şu sektörün id'sine göre alt_sektorler tablosundan sektor_id sine eşit olanları alt alta listeleyecek. ama kodlamada yapamadım.

    <?php
    $sorgu = mysql_query("SELECT * FROM sektorler ORDER BY sektor ");
    $i = 1;
    while ($cek = mysql_fetch_array($sorgu)) {
    $k = $i % 2;
    $id = $cek[id];
    $sektor = $cek[sektor];
    $alt_sektor = $cek[alt_sektor];
    if ($k == "1") {
    echo '<tr>';
    }
    echo "<div class='col_half floatl'>
    <p><a href='sektor.php?id=cek[id]' class='big'>$cek[sektor]</a><br />
    <span class='colcode2'>
    <a href='alt_sektor.php?id=$cek[id]' class='link5'>$cek[alt_sektor]</a>, 
    </span>
    </p>
    </div>";
    if ($k == "0") {
    echo '</tr>';
    }
    $i++;
    }
    ?>
    bu şekilde kodla sadece ana sektörleri listelemekte ama alt sektörleri nasıl lisleyeceğimi bulamadım bir arkadaş yardım ederse sevinirim.
  • 23-09-2008, 09:34:22
    #2
    Kurumsal PLUS
    bunun yerine tek bir sektor tablosu oluşturursun ve ekstradan bir "anasektor" alanı açarsın. anasektör eklerken bu alanı 0 yaparsın ki anasektör olduğu belli olsun, anasektörleri listelerken where anasektor=0 ile listelersin. alt sektör eklerken hangi ana sektörün altına ekleyeceksen anasektor alanına anasektörün ip adresini yazarsın. anasektöre girildiğinde de where anasektor=$sektorid ile alt sektörleri çekersin..
  • 24-09-2008, 15:38:34
    #3
    eğer tek tablo içerisinden sınırsız sektör / altsektör gibisinden uygulama yapmak istiyorsan rekürsif fonksiyona göz atmalısın bende çok uğraştım bu konu ile iligili bu işi en temiz rekürsif fonksiyon çözer.
  • 24-09-2008, 22:05:47
    #4
    sağolsun iyinette Angelo kodu yazdı burada vereyim başka arkadaşlara da yarayabilir

    $sql = "SELECT s.id AS sid, s.sektor, alts.id AS altsid, alts.alt_sektor
    FROM sektorler AS s, alt_sektorler AS alts
    WHERE s.id=alts.sektor_id ORDER BY s.sektor ASC";
    
    $q = mysql_query($sql) or die(mysql_error());
    
      while ($a = mysql_fetch_array($q)) {
      
         if ($aktif_sektor == "") {
         $aktif_sektor = $a[sektor];
         echo '<b><a href="sektor.php?id='.$a[sid].'">'.$a[sektor].'</a></b><br>';
         }
         
         if ($aktif_sektor == $a[sektor]) {
         echo '<a href="alt_sektor.php?id='.$a[altsid].'">'.$a[alt_sektor].'</a> &nbsp; ';
         }
         
         else {
          $aktif_sektor = $a[sektor];
         echo '<br><br><b><a href="sektor.php?id='.$a[sid].'">'.$a[sektor].'</a></b><br>
         <a href="alt_sektor.php?id='.$a[altsid].'">'.$a[alt_sektor].'</a> &nbsp; ';
         }
         
       }