Php ile Mysql veritabanından veri çekme (sorgulama)

Veritabanından veri çekmek için kullandığımız temel php fonksiyonlarına göz atacağız. Fonksiyonların akılda kalıcı olması için tek tablolu bir veritabanı tasarlayalım ve her bir fonksiyon için bu tablodan verileri nasıl çekip kullandığımıza bakalım. 

İlk önce veritabanı tablomuzu tasarlayalım. ogrenci isimli tablomuzun sütun bilgileri ve içindeki veriler aşağıdaki gibi olsun. 

Veritabanı tablomuzu oluşturduktan sonra gerekli bağlantıları yaptığımızı varsayarak devam ediyorum. Şimdi temel fonksiyonların ne iş yaptıklarına ve kullanımlarına bakalım.

Temel fonksiyonlar şunlardır: 

  1. mysqli_fetch_row(): Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerleri 0' dan başlar ve sütun sayısı kadar devam eder. 
  2. mysqli_fetch_assoc(): Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerleri ise veritabanı tablomuzdaki sütun isimleridir.
  3. mysqli_fetch_array(): Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerlerinin nasıl olacağı ise ikinci bir parametreyle belirlenir.
  4. mysqli_fetch_object(): Sorgu sonuçları nesne(object) tipinde geri döndürülür. Veritabanı tablomuzdaki sütun isimleri ile verilere erişiriz.

1) mysqli_fetch_row()

Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerleri 0' dan başlar ve sütun sayısı kadar devam eder. 

Örnek

<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_row($sorgu) ){
    echo $sonuc[0];    // ogrID kolonu
    echo $sonuc[1];    // ogrAd kolonu 
    echo $sonuc[2];    // ogrSoyad kolonu
    echo $sonuc[3];    // ogrNo kolonu
}
?>
Yukarıdaki kod parçaçığında $baglanti değişkeni veritabanı bağlantımızı yaptığımız değişkendir. Bunun hazır olduğunu varsayarak buraya yazdığımıza dikkat edelim. Veritabanı bağlantısını nasıl yaptığımıza linkteki makalemden bakabilirsiniz. Makaleye gitmek için tıklayınız.

2) mysqli_fetch_assoc()

Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerleri ise veritabanı tablomuzdaki sütun isimleridir.

Örnek

<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_assoc($sorgu) ){
    echo $sonuc["ogrID"];     // ogrID kolonu
    echo $sonuc["ogrAd"];     // ogrAd kolonu 
    echo $sonuc["ogrSoyad"];  // ogrSoyad kolonu
    echo $sonuc["ogrNo"];     // ogrNo kolonu
}
?>

3) mysqli_fetch_array()

Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerlerinin nasıl olacağı ise ikinci bir parametreyle belirlenir. İkinci parametre şunlar olabilir:

  • MYSQLI_ASSOC: Döndürülen dizi değişkeninde indis değerlerinin veritabanı tablosunun sütun isimlerinden oluşmasını sağlar. Varsayılan değerdir. Yani hiçbir şey yazılmazsa bu özellik kullanılır. 
  • MYSQLI_NUM: Döndürülen dizi değişkeninde indis değerlerinin sayısal olmasını sağlar. 
  • MYSQLI_BOTH: Döndürülen dizi değişkeninde indis değerlerinin hem sayısal hem de sütun isimleriyle birlikte oluşmasını sağlar.

Örnekler

<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_array($sorgu,MYSQLI_ASSOC) ){
    echo $sonuc["ogrAd"].' '.$sonuc["ogrSoyad"].' '.$sonuc["ogrNo"].'<br>'; 
}
?>

// Sonuç aşağıdaki gibidir.
// Ahmet Ardahanlı 10
// Üzeyir Ali Ardahanlı 11
// Ayşe Çoban 12
// Fatma Yıldız 13
<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_array($sorgu,MYSQLI_NUM) ){
    echo $sonuc[0].' '.$sonuc[1].' '.$sonuc[2].' '.$sonuc[3].'<br>'; 
}
?>

// Sonuç aşağıdaki gibidir.
// 1 Ahmet Ardahanlı 10
// 2 Üzeyir Ali Ardahanlı 11
// 3 Ayşe Çoban 12
// 4 Fatma Yıldız 13
<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_array($sorgu,MYSQLI_BOTH) ){
    echo $sonuc[1].' '.$sonuc["ogrAd"]; 
    // ikisinin de aynı sonucu verdiğine dikkat edelim.
}
?>

// Sonuç aşağıdaki gibidir.
// Ahmet Ahmet
// Üzeyir Ali Üzeyir Ali
// Ayşe Ayşe
// Fatma Fatma

4) mysqli_fetch_object()

Sorgu sonuçları nesne(object) tipinde geri döndürülür. Veritabanı tablomuzdaki sütun isimleri ile verilere erişiriz. 

Örnek

<?php 
$sql="SELECT * FROM ogrenci";
$sorgu=mysqli_query($baglanti,$sql);
while( $sonuc=mysqli_fetch_object($sorgu) ){
    echo $sonuc->ogrAd.' '.$sonuc->ogrSoyad.'<br>'; 
}
?>

// Sonuç aşağıdaki gibidir.
// Ahmet Ardahanlı
// Üzeyir Ali Ardahanlı
// Ayşe Çoban
// Fatma Yıldız
Verilere nesne belirteci (->) ile eriştiğimize dikkat edelim.
ETİKETLER
php veri çekmemysqli_fetch_rowmysqli_fetch_assocmysqli_fetch_arraymysqli_fetch_objectphp mysql
Öncekİ Yazı

Android de bir önceki aktiviteye dönmeyi engelleme

Sonrakİ Yazı

PHP de mysql veritabanı bağlantısı yapma

İlgili Yazılar