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:
- 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.
- mysqli_fetch_assoc(): Sorgu sonuçları dizi tipinde geri döndürülür. Dizinin indis değerleri ise veritabanı tablomuzdaki sütun isimleridir.
- 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.
- 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
}
?>
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