iki farklı tablo arasında bağlantı kurmak - R10.net
  • 31-01-2009, 13:43:41
    #1
    php yi hala anlayamamış bu kardeşinize umarım bu başlık altında yardım edersiniz

    iki tablomuz var
    sinif tablosu
    sinif_id------ogrenci_sinifi
    12 ----------öss hafta içi
    13 ----------öss hafta sonu

    ogrenciler tablosu
    ogrenci adi ----ogrenci_sinifi
    ali demir --------12
    kenan deniz -----13

    yapmaya çalıştığım şey;
    öğrenci ekle dosyasından


    Alıntı
    <option value=\"".$satir["sinif_id"]."\">".$satir["ogrenci_sinifi"]."</option>
    şeklinde selectbox ile ogrenciler tablosuna öğrencinin sınıfını id olarak yazdırıyorum. Fakat
    Ali Demir adlı öğrencinin sınıfını ekrana yazdırmak istediğimde 12 nin karşılığı olan öss hafta içi yazsısını ekrana bir türlü basmıyor.

    Alıntı
    $ogrenci = "SELECT
    ogrenci_adi,
    ogrenci_sinifi,
    FROM ogrenciler
    ";

    $ogrenci_al = mysql_query ($ogrenci);
    $ogrsayi = mysql_num_rows ($ogrenci_al);
    while ($ogrlistele = mysql_fetch_assoc ($ogrenci_al)) {

    while ($satir = mysql_fetch_assoc(mysql_query("select * from sinif where sinif_id = '[ogrenci_sinifi]'")))
    { $yeni_sinif = $satir['ogrenci_sinifi'];
    $yeni_sinif1 = $satir['ogrenci_sinifi'];
    }

    echo '
    <tr>
    <td width="44%" bgcolor="#F0F0F4">&nbsp;'.$ogrlistele[ogrenci_adi].'</td>
    Hata nerde acaba? Daha basit bir yol varsa lütfen paylaşın.
    Saygılarımla...
  • 31-01-2009, 14:11:24
    #2
    Biraz karışık oldu ama böyle olacak bir de ayar.php dosyasını unutma db'yi tanıttığın;
    <form action="?islem=ogrenci" method="post">
    Öğrenci İsmini Seçiniz <select size="1" name="kategori">
          <option selected>
    
        </option>
    <?
           include('ayar.php');
    
          $sql=mysql_query("SELECT ogrenci_adi, ogrenci_sinifi, FROM ogrenciler");
    
          while($yaz=mysql_fetch_array($sql)){
    
       ?>
    
          <option value="<? echo $yaz["ogrenci_sinifi"];?>"><? echo $yaz["ogrenci_adi"];?></option><? }?>
                </select> <input type="submit" value="Sınıfına Bak">
    </form>
    <? if($_GET["islem"]=='ogrenci'){?>
    Öğrenci İsmini Seçiniz <select size="1" name="kategori">
    <? 
    $sinif=$_POST['kategori'];
    include("ayar.php");
    $sq=mysql_query("SELECT * from sinif where sinif_id='$sinif'");
    $sqa=mysql_query("SELECT * from ogrenciler where ogrenci_sinifi='$sinif'");
    $ya=mysql_fetch_array($sq)
    $yaa=mysql_fetch_array($sqa)
    ?>
          <option value="<? echo $yaa["ogrenci_sinifi"]?>"selected>
    <? echo $yaa["ogrenci_adi"]?>
        </option>
    <?
           include('ayar.php');
    
          $sql=mysql_query("SELECT ogrenci_adi, ogrenci_sinifi, FROM ogrenciler");
    
          while($yaz=mysql_fetch_array($sql)){
    
       ?>
    
          <option value="<? echo $yaz["ogrenci_sinifi"];?>"><? echo $yaz["ogrenci_adi"];?></option><? }?>
                </select> <? echo $ya["ogrenci_sinifi"]?> <input type="submit" value="Sınıfına Bak">
    </form>
    <? }?>
  • 31-01-2009, 18:50:42
    #3
    $query = mysql_query("select * from sinif inner join ogrenciler on sinif.sinif_id =ogrenciler.ogrenciler sinifi where sinif_id = '$degisken'");

    Bu sana şöyle bir tablo verir

    sinif_id------ogrenci_sinifi--------ogrenci adi ----ogrenci_sinifi
    12 ----------öss hafta içi-------- ali demir ------ 12

    daha sonra ekrana istediğini bastırabilirsin.
  • 01-02-2009, 15:16:46
    #4
    Teşekür ederim yardımlarınız için.
    $ogrenci = "SELECT
    ogr.ogrenci_adi,
    ogr.ogrenci_sinifi,
    ogr.ogrenci_no,
    ogr.ogrenci_opsiyonu,
    snf.*
    FROM ogrenciler ogr, sinif snf WHERE ogr.ogrenci_sinifi=snf.sinif_id";
    
    $ogrenci_al = mysql_query ($ogrenci);
    $ogrsayi = mysql_num_rows ($ogrenci_al);
    while ($ogrlistele = mysql_fetch_assoc ($ogrenci_al)) {
    
    $yeni_sinif = $ogrlistele['ogrenci_sinifi'];
    echo $yeni_sinif;
    şeklinde çalıştırmayı başardım.
  • 01-02-2009, 20:41:25
    #5
    anlamayanlara kısaca anlatmak gerekirse iki ayrı tabloda bulunan 2 aynı veriyi karşılaştırıp (eşitlemek için) SQL SELECT kodu

    SELECT tablo1,tablo2 where tablo1.id=tablo2.id

    bu şekilde olmalıdır.