• 01-01-2022, 16:22:49
    #1
    Merhabalar;

    Paketler tablosundaki fiyatlar sipariş fiyatıyla eşitse paket ismini yazdırıyorum. Ancak sadece 1. paket ismi yazdırılıyor. fetchAll denediğimde Undefined index hatası veriyor.

    <?php  $sorguy = $baglanti->prepare("SELECT * FROM paketler");
    $sorguy->execute();
    $sonucy = $sorguy->fetch();//sorgu çalıştırılıp veriler alınıyor
    ?>
    <?php if ($sonucy['fiyat'] == $siparisfiyat) {
                                        echo $sonucy['baslik'];
                                    }?>
  • 01-01-2022, 16:27:58
    #2
    $sonucy[0]["fiyat"] olarak dener misiniz?
  • 01-01-2022, 16:29:17
    #3
    nuriodaci adlı üyeden alıntı: mesajı görüntüle
    $sonucy[0]["fiyat"] olarak dener misiniz?
    Undefined offset: 0 hatası verdi hocam
  • 01-01-2022, 16:33:25
    #4
    fetch içine değer belirtmenizi istiyor herhalde hocamç fetch(PDO::FETCH_ASSOC) şeklinde yapıp deneyin. @wisex;
  • 01-01-2022, 16:33:35
    #5
    PHP pek anlamam ama yazdırmak istediğiniz sonuç birden fazla elemana sahip olursa elbette 1. sonucu çıkaracaktır, liste üstünde döngüyle yazdırmanız gerekebilir?
    • wisex
    wisex bunu beğendi.
    1 kişi bunu beğendi.
  • 01-01-2022, 16:38:26
    #6
    omergunay adlı üyeden alıntı: mesajı görüntüle
    fetch içine değer belirtmenizi istiyor herhalde hocamç fetch(PDO::FETCH_ASSOC) şeklinde yapıp deneyin. @wisex;
    Denedim hocam maalesef olmadı
    Misafir adlı üyeden alıntı: mesajı görüntüle
    PHP pek anlamam ama yazdırmak istediğiniz sonuç birden fazla elemana sahip olursa elbette 1. sonucu çıkaracaktır, liste üstünde döngüyle yazdırmanız gerekebilir?
    Başka bir while döngüsü içinde kullandığım için while içinde while karmaşaya sebep oluyor.
  • 01-01-2022, 16:39:50
    #7
    Misafir adlı üyeden alıntı: mesajı görüntüle
    PHP pek anlamam ama yazdırmak istediğiniz sonuç birden fazla elemana sahip olursa elbette 1. sonucu çıkaracaktır, liste üstünde döngüyle yazdırmanız gerekebilir?
    Aynen ben oraya dikkat etmemiştim. fetch tek kayıt ile çalışır. fetchAll ise tüm kayıtlar için kullanılır. Eğer kayıt 1 den fazla ise ya fetchi while ile kullanacaksın. ya da fetchAll ı foreach ile kullacaksınız.
  • 01-01-2022, 16:41:31
    #8
    Undefined hatası almanızın sebebi string değil "obje" yazdırmaya çalışmanız olabilir, while içinde while nerede break ettiğinize bağlı karmaşaya sebep olmaz WhiteBoard ile adım adım yazarak kodlarınızı kontrol edin isterseniz.
    • wisex
    wisex bunu beğendi.
    1 kişi bunu beğendi.
  • 01-01-2022, 16:42:16
    #9
    $veriler = $sorguy->fetchAll(PDO::FETCH_ASSOC);

    foreach($veriler as $veri) {
    echo $veri["fiyat "]

    }