• 02-01-2022, 13:48:12
    #1
    2 adet tablom var 1. tablo olan yorumlar tablosunda urun_id değeri var bu 2. tablo olan urun tablosundaki id'ye eşit bu şekilde yorumlar tablosundan yorumu urun tablosundan urun id ye denk gelen ürün ismini çekmek istiyorum. Bir türlü beceremedim tam olarak nasıl yapmam gerekli

    Yorumları çektiğim kod aşağıda
    <?$yorumlar = $connect->query("select * from yorumlar order by id desc LIMIT 1");
            while($yorum_cek=$yorumlar->fetch())
            {?>
    
    <?php echo $yorum_cek['yorum'];?>
    <?}?>
    ürünleri çektiğim kod aşağıda
    <?$oyuncek = $connect->query("select * from urun order by id desc limit 1");
            while($oyun = $oyuncek->fetch())
            {?>
        
            <?=$oyun['urun_adi']?>
    <?}?>
  • 02-01-2022, 13:49:15
    #2
    Merhaba,

    INNER JOIN ile yapabilirsiniz.
    http://www.ugurturkmen.net/php-mysql...ullanimi.html/
  • 02-01-2022, 16:04:41
    #3
    umarım yanlış anlamadım
    birinci tabloda siz zaten ürün id sini cekiyorsunuz, $yorum_cek değişkeninde bu id bilgisi var siz bunu echo ile ekrana yazdırmışşınız,
    diger tabloda bunu cek asagıda bir örnek düzenledim bir dene,
    ama yorumu başka bir sayfada görmek istiyorsan get le cekmen gerekir

    $sorgu=mysql_query("SELECT * FROM `urun ` WHERE `id`= '$yorum_cek ' ");
    while($row=mysql_fetch_row($sorgu));
    {
    $idno=$row['0'];
    $oyun=$row['yorum ']
    }
  • 02-01-2022, 17:35:28
    #4
    Kodlarınızdan anladığım kadarıyla yalnızca tek yorum çekiyorsunuz. Sql sorgunuzda LIMIT 1 yazmışsınız. Bu durumda while döngüsü kullanmanıza gerek olmaz.

    <?php
    $sth = $connect->prepare('SELECT y.*, u.urun_adi FROM yorumlar AS y LEFT JOIN urun AS u ON (y.urun_id = u.id) ORDER BY y.id DESC LIMIT 1');
    $sth->execute();
    
    $yorum = $sth->fetch(PDO::FETCH_OBJ);
    
    echo $yorum->yorum . '( Ürün: '.$yorum->urun_adi.')';
    Ancak eğer tüm yorumları listeliyorsanız ve bu yorumların hangi ürüne geldiğini görmek istiyorsanız bu durumda öncelikle sorgudan LIMIT 1 ifadesini kaldıralım. Daha sonra while yerine foreach döngüsü kullanalım. Her döngü yerinde güzel.

    <?php 
    $sth = $connect->prepare('SELECT y.*, u.urun_adi FROM yorumlar AS y LEFT JOIN urun AS u ON (y.urun_id = u.id) ORDER BY y.id DESC');
    $sth->execute();
    
    $yorumlar = $sth->fetchAll(PDO::FETCH_OBJ);
    
    foreach($yorumlar as $yorum) {
    	
    	echo $yorum->yorum . '( Ürün: '.$yorum->urun_adi.')';	
    	echo '<br>';
    
    }
  • 02-01-2022, 20:51:52
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    $password="1234";
    $server="localhost";
    $database="vtadi";
    $username="root";

    try {

    $baglanti = new PDO("mysql:host=$server;dbname=$database", "$username", "$password");
    $baglanti->exec("SET NAMES utf8");
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $cikti = $baglanti->query("SELECT * FROM tablo_adi")->fetch(PDO::FETCH_ASSOC);

    $cikti2 = $baglanti->query("SELECT * FROM tablo_adi")->fetch(PDO::FETCH_ASSOC);

    } catch (PDOException $e) {
    die($e->getMessage());
    }
    echo $cikti['tablo_alanı'];
    echo $cikti2['tablo_alanı'];
    $baglanti = null;

    ?>

    Şeklinde Kullanabilirsiniz.