• 12-07-2019, 08:51:37
    #1
    Merhabalar bir proje üretiyorum ama şöyle bir hata alıyorum (error_log dosyasında)
    [12-Jul-2019 05:40:52 UTC] PHP Fatal error: Cannot use object of type PDOStatement as array in /****--/hammadde-listele.php on line 69
    69. satırdaki kodlar

     <tr>
    <td><?php echo $hammadde_id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
    [B]<td><?php echo $urun["urun_isim"]; ?></td> [69.SATIR][/B]
    <td><?php echo $hammadde_adi; ?></td>
    <td><?php echo $hammadde_kalitesi; ?></td>
    <td><?php echo $hammadde_fatura; ?></td>
    <td><?php echo $hammadde_fiyat; ?></td>
    <td><?php echo $hammadde_oran; ?></td>
    [B]<td><?php echo $birim["birim_isim"]; ?></td>[/B]
    <td><a href="hammadde-sil.php?id=<?php echo $hammadde_id; ?>" class="btn btn-danger">Sil</a></td>
    </tr>
    bu 2 satıra bağlı olarak çaliştirdiğim sorgu şu

    $urun = $db->query("SELECT * FROM uretim_urun WHERE urun_id = ".$urun_isim, PDO::FETCH_ASSOC);
    foreach ($urun as $urun) {}
    
    $birim = $db->query("SELECT * FROM birim WHERE birim_id = ".$birim_isim, PDO::FETCH_ASSOC);
                                    foreach ($birim as $birim) {}
    buraları gizleyince hata ortadan kalkıp çalişiyor tabi ama sorunun nerede olduguna anlam veremedim bilgisi olan varmı acaba
  • 12-07-2019, 08:57:05
    #2
    ARS adlı üyeden alıntı
    Merhabalar bir proje üretiyorum ama şöyle bir hata alıyorum (error_log dosyasında)
    [12-Jul-2019 05:40:52 UTC] PHP Fatal error: Cannot use object of type PDOStatement as array in /****--/hammadde-listele.php on line 69
    69. satırdaki kodlar

     <tr>
    <td><?php echo $hammadde_id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
    [B]<td><?php echo $urun["urun_isim"]; ?></td> [69.SATIR][/B]
    <td><?php echo $hammadde_adi; ?></td>
    <td><?php echo $hammadde_kalitesi; ?></td>
    <td><?php echo $hammadde_fatura; ?></td>
    <td><?php echo $hammadde_fiyat; ?></td>
    <td><?php echo $hammadde_oran; ?></td>
    [B]<td><?php echo $birim["birim_isim"]; ?></td>[/B]
    <td><a href="hammadde-sil.php?id=<?php echo $hammadde_id; ?>" class="btn btn-danger">Sil</a></td>
    </tr>
    bu 2 satıra bağlı olarak çaliştirdiğim sorgu şu

    $urun = $db->query("SELECT * FROM uretim_urun WHERE urun_id = ".$urun_isim, PDO::FETCH_ASSOC);
    foreach ($urun as $urun) {}
    
    $birim = $db->query("SELECT * FROM birim WHERE birim_id = ".$birim_isim, PDO::FETCH_ASSOC);
    foreach ($birim as $birim) {}
    buraları gizleyince hata ortadan kalkıp çalişiyor tabi ama sorunun nerede olduguna anlam veremedim bilgisi olan varmı acaba
    https://stackoverflow.com/questions/...ement-as-array
    CyberPanel Kurulum ve Sunucu Optimizasyon Hizmeti
  • 12-07-2019, 09:05:12
    #3
    evet kısmen çözüme ulaştim sayiliyorum ama ürün isimleri ve birim isimleri gitti

     $urun = $db->prepare("SELECT * FROM uretim_urun WHERE urun_id = ".$urun_isim, PDO::FETCH_ASSOC);
    foreach ($urun as $urun) {}
    
    $birim = $db->prepare("SELECT * FROM birim WHERE birim_id = ".$birim_isim, PDO::FETCH_ASSOC);
    foreach ($birim as $birim) {}
    
    ?>
    
    <tr>
    <td><?php echo $hammadde_id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
    <td><?php echo $urun["urun_isim"]; ?></td>
    <td><?php echo $hammadde_adi; ?></td>
    <td><?php echo $hammadde_kalitesi; ?></td>
    <td><?php echo $hammadde_fatura; ?></td>
    <td><?php echo $hammadde_fiyat; ?></td>
    <td><?php echo $hammadde_oran; ?></td>
    <td><?php echo $birim["birim_isim"]; ?></td>
    <td><a href="hammadde-sil.php?id=<?php echo $hammadde_id; ?>" class="btn btn-danger">Sil</a></td>
                                    </tr>
  • 12-07-2019, 09:08:24
    #4
    ARS adlı üyeden alıntı
    evet kısmen çözüme ulaştim sayiliyorum ama ürün isimleri ve birim isimleri gitti

     $urun = $db->prepare("SELECT * FROM uretim_urun WHERE urun_id = ".$urun_isim, PDO::FETCH_ASSOC);
    foreach ($urun as $urun) {}
    
    $birim = $db->prepare("SELECT * FROM birim WHERE birim_id = ".$birim_isim, PDO::FETCH_ASSOC);
    foreach ($birim as $birim) {}
    
    ?>
    
    <tr>
    <td><?php echo $hammadde_id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
    <td><?php echo $urun["urun_isim"]; ?></td>
    <td><?php echo $hammadde_adi; ?></td>
    <td><?php echo $hammadde_kalitesi; ?></td>
    <td><?php echo $hammadde_fatura; ?></td>
    <td><?php echo $hammadde_fiyat; ?></td>
    <td><?php echo $hammadde_oran; ?></td>
    <td><?php echo $birim["birim_isim"]; ?></td>
    <td><a href="hammadde-sil.php?id=<?php echo $hammadde_id; ?>" class="btn btn-danger">Sil</a></td>
    </tr>
    $urun ve $birim değişkenlerini print_r ile ekrana yazıdırıp bi kontrol edin ham halde geliyormu diye
    CyberPanel Kurulum ve Sunucu Optimizasyon Hizmeti
  • 12-07-2019, 09:10:34
    #5
    alenazte adlı üyeden alıntı
    $urun ve $birim değişkenlerini print_r ile ekrana yazıdırıp bi kontrol edin ham halde geliyormu diye
    direktmen 500' e düşüyor üstadım print_r ile yazdırmak istedigimde
  • 12-07-2019, 09:28:42
    #6
    $birim["birim_isim"] yerine $birim->birim_isim olarak deneyin
  • 12-07-2019, 09:45:15
    #7
    DeRyaca adlı üyeden alıntı
    $birim["birim_isim"] yerine $birim->birim_isim olarak deneyin
    malasef işlem görmedi buda
  • 12-07-2019, 10:25:30
    #8
    ARS adlı üyeden alıntı
    direktmen 500' e düşüyor üstadım print_r ile yazdırmak istedigimde
    İş yerinde olduğumdan tam yardım edemiyorum ama print_r yi yanlış mı kullandınız acaba print_r ($urun); şeklinde yazdınız dimi
    CyberPanel Kurulum ve Sunucu Optimizasyon Hizmeti
  • 12-07-2019, 10:37:30
    #9
    ARS adlı üyeden alıntı
    evet kısmen çözüme ulaştim sayiliyorum ama ürün isimleri ve birim isimleri gitti

     $urun = $db->prepare("SELECT * FROM uretim_urun WHERE urun_id = ".$urun_isim, PDO::FETCH_ASSOC);
    foreach ($urun as $urun) {}
    
    $birim = $db->prepare("SELECT * FROM birim WHERE birim_id = ".$birim_isim, PDO::FETCH_ASSOC);
    foreach ($birim as $birim) {}
    
    ?>
    
    <tr>
    <td><?php echo $hammadde_id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
    <td><?php echo $urun["urun_isim"]; ?></td>
    <td><?php echo $hammadde_adi; ?></td>
    <td><?php echo $hammadde_kalitesi; ?></td>
    <td><?php echo $hammadde_fatura; ?></td>
    <td><?php echo $hammadde_fiyat; ?></td>
    <td><?php echo $hammadde_oran; ?></td>
    <td><?php echo $birim["birim_isim"]; ?></td>
    <td><a href="hammadde-sil.php?id=<?php echo $hammadde_id; ?>" class="btn btn-danger">Sil</a></td>
    </tr>
    prepared statement'ı yanlış kullanıyorsunuz.
     $urun_query = $db->prepare("SELECT * FROM uretim_urun WHERE urun_id = ?");
    $urun_query->execute([$urun_isim]);
    $urun = $urun_query->fetchAll();
    foreach ($urun as $urun) {}
    
    $birim_query = $db->prepare("SELECT * FROM birim WHERE birim_id = ?");
    $birim_query->execute([$birim_isim]);
    $birim = $birim_query->fetchAll();
    foreach ($birim as $birim) {}
    
    ?>
    böyle düzeltmeyi deneyin. Daha fazla bilgi için;
    https://www.php.net/manual/tr/pdo.prepare.php
    Web Development
    Web Security & Pentesting
    Wordpress Theme Development

    I love GNU/Linux

    Yardımcı olduysam R10+ vermeyi unutmayın.