• 14-02-2022, 15:08:46
    #1
    Merhabalar, PHP ile dizi içerisindeki elemanları dinamik olarak veri tabanından çekmek istiyorum. Birçok yol denememe karşın çözüm bulamadım. Birden fazla veri olmasına karşın, veri tabanındaki son elemanı çekiyor. Döngü çalışmıyor, nerede hata yapıyor olabilirim, yardımcı olabilecek birileri var mı?
    (Dizideki elemanları dinamik olarak çekip, gelen başka bir dinamik değerle karşılaştırmak için istiyorum)
    Şimdiden teşekkür ederim.

    function kullanicilar(){
        global $connect;
        $query = "
        SELECT * FROM kullanicilar
        ";
        $statement = $connect->prepare($query);
        $statement->execute();
        if($statement->rowCount() > 0){
            $result = $statement->fetchAll();
            foreach($result as $row){
                $kullanicilar = array(
                    $row['ad'] => $row['soyad'],
                );
            }
        }
        return $kullanicilar;
    }
    
    print_r(kullanicilar());
    Sonuç: "Array ( [Ahmet] => Mehmet )"
  • 14-02-2022, 15:14:13
    #2
    Muhtemelen sorun şu kullanıcıların array değeri olmaması
    foreach içerisindeki $kullanicilar değişkenini $kullancilar[] şeklinde değiştirip deneyin
  • 14-02-2022, 15:18:07
    #3
    AKSOYOGLU adlı üyeden alıntı: mesajı görüntüle
    Merhabalar, PHP ile dizi içerisindeki elemanları dinamik olarak veri tabanından çekmek istiyorum. Birçok yol denememe karşın çözüm bulamadım. Birden fazla veri olmasına karşın, veri tabanındaki son elemanı çekiyor. Döngü çalışmıyor, nerede hata yapıyor olabilirim, yardımcı olabilecek birileri var mı?
    (Dizideki elemanları dinamik olarak çekip, gelen başka bir dinamik değerle karşılaştırmak için istiyorum)
    Şimdiden teşekkür ederim.

    function kullanicilar(){
        global $connect;
        $query = "
        SELECT * FROM kullanicilar
        ";
        $statement = $connect->prepare($query);
        $statement->execute();
        if($statement->rowCount() > 0){
            $result = $statement->fetchAll();
            foreach($result as $row){
                $kullanicilar = array(
                    $row['ad'] => $row['soyad'],
                );
            }
        }
        return $kullanicilar;
    }
    
    print_r(kullanicilar());
    Sonuç: "Array ( [Ahmet] => Mehmet )"
    Alttaki kodu dener misiniz?

    <?php
    function kullanicilar(){
        global $connect;
        $query = "SELECT * FROM kullanicilar";
        $statement = $connect->prepare($query);
        $statement->execute();
        if($statement->rowCount() > 0){
            $result = $statement->fetchAll();
            foreach($result as $key => $row){
                $kullanicilar[$key][$row['ad']] = $row['soyad'];
            }
        }
        return $kullanicilar;
    }
    
    print_r(kullanicilar());
  • 14-02-2022, 15:20:30
    #4
    ...
    if($statement->rowCount() > 0){
        return array_column($statement->fetchAll(), 'soyad', 'ad');
    }
  • 14-02-2022, 15:20:41
    #5
    Foreach içinde array tanımlayıp, dışarıdan ulaşmaya çalışıyorsunuz tek veri dönmesi normal.
  • 14-02-2022, 15:47:10
    #6
    Yardımcı olan herkese ayrı ayrı teşekkür ederim. @iyovi; 'ye ilgisi için ekstra teşekkürler, herkese iyi çalışmalar dilerim.