Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP-MVC de Veritabanında Verileri Yazdırmak..

Arkadaşlar kendi MVC mi yazdım. Fakat tek problem, veritabından array olarak sadece ilk kaydın dönmesi ve ekrana basıanaca doğal olarak ilk kaydın bilgilerinin yazdırılması. Diğer kayıtlara nasıl ulaşabilirim? Şu an tablomda 2 kayıt var ama sadece ilkini görebiliyorum çıktıda..


Model dosyasındaki kayıtları mysql_fecth_assoc olarak return eden fonksiyon:
public function getLastShots() {
        $getShots = $this->db->mQuery("SELECT * FROM site_shots");  
        return $this->db->mAssoc($getShots);
    }


Controller dosyasındaki fonksiyondan gelen sonucu viewe aktaran fonksiyon:
public function index(){
        $this->loadModel('index');
        $this->view->getLastShots = $this->model->getLastShots();
        $this->view->how = $this->model->howmany();  
        $this->view->load('includes/index');
    }


View dosyamda şunu yaptımğımda sadece ilk kayıt içindeki tüm elemanlar ekrana basılıyor.
foreach ($this->getLastShots as $key => $value){
                echo $value.'<br>';
            }


Var-Dump çıktısı:
array
  'id' => string '1' (length=1)
  'projectid' => string '0' (length=1)
  'memberid' => string '1' (length=1)
  'title' => string 'Arkdaşımı Çizdim' (length=17)
  'explanation' => string 'Lorem ipsum dolor sit amet.' (length=28)
  'tags' => string 'web,design,iphone,application' (length=29)
  'date' => string '10 Ağustos 2011' (length=16)
  'view' => string '62' (length=2)
  'image_small' => string 'sample_small.jpg' (length=16)
  'image_big' => string 'sample_big.jpg' (length=14)
  'confirm' => string '1' (length=1)
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • 1
    madpoet adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    84 cevap - 1 soru
    fetchAll türü bir fonksiyona ihtiyacın var. Tüm sonuçları bir array'e doldurman gerek sonra da o array'i foreach ile döngü içerisinde kullanman... (Evet array'de tuttuğun kadar daha fazla memory harcar, yapacak birşey yok)

    DBAL olarak bilinen bir kütüphaneyi kullanmanı öneririm, kendi yazdıkların primitif kalacaktır. Doctrine olabilir, PEAR DB2 belki, Zend_Db tek başına kullanılabilir başka kütüphaneler de mevcut...

    Çünkü bunu yaptıktan sonra bu sefer paginator ihtiyacın olacak. fethOne, fetchCol, fetchPairs türü metotlar da gerekecek bunları baştan icat etmek amerikayı yeniden keşfetmek gibi birşey... Onun dışında muhtelif tweak'ler var kullanılan resource'un boşaltılması gibi, hazır ve yaygın kütüphaneler bunları uygular zaten...

Cevaplar

  • chveneburi adlı üyenin fotoğrafı
    11 yıl önce yazılmış
    11 cevap - 1 soru
    echo $value['keydegeri']
    


    Kolay gele
    • GncArt adlı üyenin fotoğrafı GncArt
      O şekilde olmuyor dostum ama cevabın için teşekkürler. madpoet in dediği gibi fetchAll türü bir şeye ihtiyacım var onu da şu şekilde çözdüm. Database sınıfıma fetchAll fonksyionu yazdım:

      public function mFetchAll($result){
              $all = array();
              while ($all[] = $this->mAssoc($result));
              return $all;
          }
      
      11 yıl önce yazılmış
    • chveneburi adlı üyenin fotoğrafı chveneburi
      Selam,

      Zaten verileri array in içine koymadan foreach ile çekemezsiniz.

      Kolay gele
      11 yıl önce yazılmış