• 10-09-2009, 05:26:41
    #1
    merhabalar; bir sorunla karşılaştım gece gece canımı sıktı, kategorileri aldım sonrasında tüm ürün isimlerinide aldırdım buraya kadar oke sorun yok ama ürün isimlerini kategorilerine göre ayırmak istiyorum ama yapamadım bir türlü.

    Örnek :

    1. kategori
    ürünadı1
    ürünadı2
    ürünadı3

    2. kategori
    ürünadı1
    ürünadı2
    ürünadı3

    3. kategori
    ürünadı1
    ürünadı2
    ürünadı3

    böyle birşey yapmak istiyorum her girilen kategorinin altında o kategoriye girilen ürünlerin isimleri gelmeli.

    <ul style="vertical-align:middle">
                            <?php  $kategoriler=tumkategorilerial();?>
                            <?php foreach($kategoriler as $kategori):?>
                          </p>
                        <li class="urunmenu"> <a href="urunler.php?kid=<?php echo $kategori['id']; ?>"><?php echo $kategori['kategori']; ?></a></li>
                   <span class="urunkategori"><?php
    			   
     $sorgu=mysql_query("SELECT * FROM urunler");
     $say=3;
     while($s=mysql_fetch_array($sorgu)){
     if(($say%1)==1){ echo ""; }
     ?>
                                      
                               <br> <?=$s["urunadi"]?></span> <?php
     if(($say%3)==0){ echo ""; }
     $say++;
     }
     ?>
                            <?php endforeach; ?> 
                         
                      </ul>
    bu kodlarla tüm kategorileri sorunsuz alıyorum ama her kategorinin altında tüm ürün isimleri geliyor, bir türlü her kategorinin altına kendisine ait ürün isimlerini getirtemedim yardımcı olacak arkadaşlar varsa sevinirim. kolay gelsin.
  • 10-09-2009, 06:11:15
    #2
    Üyeliği durduruldu
    kategori sql sorgundaki while döngüsünde içeriği çekeceksin where koşulu ile kategori id eşitleyeceksin
  • 10-09-2009, 20:50:43
    #3
    Öncelikle kategoriler ve urunler tablolarını birleştireceksin. Daha sonra iki tablodaki kategori_id sutunlarını WHERE koşulu içinde alıcaksın ve çekiceksin.
    yani şöle.
    Alıntı
    $sql = mysql_query("SELECT k.kategordi_id,k.kategori_adi,u.kategori_id,u.urun _adi FROM kategoriler AS k, urunler AS u WHERE k.kategori_id = u.kategori_id");
    Daha sonrada hepsini çekip dizi işlemleri ile yazdıracaksın.
  • 10-09-2009, 20:55:26
    #4
    bilmediğim için soruyorum bu gibi işlemlerde join kullanılması gerekmiyor mu ? bende de benzer bir durum var da

    forum sistemi gibi düşünün. belli bir başlık için yazılan mesajları çekilecek diyelim.

    başlıklar tablosu
    baslik_id
    baslik
    mesaj sayisi
    ........

    mesajlar tablosu
    mesajid
    baslikid
    mesaj
    yazar
    .....

    bir de bu gibi basit ilişkileri bile yönetmeyi bilmiyorum . foreign key tanımlamaya gerek var mı ? bir başlıktaki mesajları çekmek için nasıl bir sorgu önerirsiniz. arkadaşın konuyu baltaladıysam özür dilerim ama hemen hemen aynı şey, onun için ayrı konu açmayayım dedim.
  • 10-09-2009, 21:32:49
    #5
    Yukarıda verdiğin tablolarda ortak bir id alışverişi bulunmadıgından join kullanmaya gerek yok bence. Ama kategoriler ayrı bir tabloda ise ve başlıklarda ayrı bir tabloda ise ve bu tablolar arasında id alışverişi varsa join kullanmak daha mantıklı ve daha hızlıdır.
    Aynı sorunla bende karşılaştım gerçekten uğraştırıyor ve kafa şişiyor. Diziler ile aranız iyise bu tür konuları çok rahat bir şekilde çözebilirsiniz.
    Şu konuyuda bir inceleyin işinizi görecek kodlar var.
    https://www.r10.net/php/442691-group_...listeleme.html