Mysql_fetch_assoc, mysql_fetch_row, mysql_fetch_object, mysql_fetch_array ve mysql_result metodları Uygulamada kullanacağımız veritabanı Veritabanı: kitaplik Tablo: kitaplar isbn adi yazari 944503382 Adım Adım Access 2000 X 881192131 Sabahın Körü Y baglan.php $user = "root"; //veritabanı kullanıcı adı $pwd = "1234"; //veritabanı şifresi $host = "localhost"; //mysql server $db = "kitaplik"; //veritabanı adı $conn = mysql_connect($host,$user,$pwd) or die("mysql sunucusuna baglanilamadi!!!".mysql_error()); mysql_select_db($db) or die("veritabani secilemedi!!!".mysql_error()); baglan.php dosyası, veritabanına bağlantının yapılmasını sağlayan blokları içeren dosyamızdır. böylece her sayfada bu kodları yeniden yazmak yerine sadece sayfaya dahil edeceğiz. mysql_fetch_assoc mysql_fetch_assoc, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları ise, sütun isimlerinden oluşur. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_assoc, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku['sutun_adi'] formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz. 1
while($oku = mysql_fetch_assoc($sonuc)) echo "Kitap adi: ".$oku["adi"]."<br>kitap ISBN: ".$oku["isbn"]."<br><br>"; //echo $.oku["yazari"]; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik else mysql_fetch_object(); mysql_fetch_object, mysql_query ile dönen sonuç kümesini işleyerek her satırı oluşturulan nesneye sütun adıyla özellik şeklinde aktarır. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_object, bilgileri $oku isimli bir nesne oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri nesne yönelimli mantıkla $oku->sutun_adi formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz. while($oku = mysql_fetch_object($sonuc)) echo "Kitap adi: ".$oku->adi."<br>kitap ISBN: ".$oku->isbn."<br><br>"; //echo $.oku->yazari; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik else mysql_fetch_row mysql_fetch_row, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları, sorgudaki çekilme sıralarına göre sıfırdan başlayarak devam eder.örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_row, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku[0] 2
formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz. Dikkat edilmesi gereken nokta, index numaralarıdır. Gördüğünüz gibi isbn sütunu ilk çekildiği için 0 index numarasını almıştır. while($oku = mysql_fetch_row($sonuc)) echo "Kitap adi: ".$oku[1]."<br>kitap ISBN: ".$oku[]."<br><br>"; //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik else mysql_fetch_array() mysql_fetch_array, mysql_fetch_assoc ve mysql_fetch_row fonksiyonlarının birleştirilmiş hali olarak düşünülebilir. Kullanım sırasında aldığı ikinci parametre (MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH) diziye erişim sırasında kullnacağınız index anahtarı tipini belirlemenizi sağlar. while($oku = mysql_fetch_array($sonuc,mysql_both)) echo "Kitap adi: ".$oku[1]."<br>kitap ISBN: ".$oku["isbn"]."<br><br>"; //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik else 3
MYSQL_ASSOC Fonksiyon kullanımı mysql_fetch_assoc ile aynı olacaktır.dizi elemanlarına sütun ismi ile ulaşılabilir MYSQL_NUM Fonksiyon kullanımı mysql_fetch_row ile aynı olacaktır.dizi elemanlarına sütun numarası ile ulaşılabilir MYSQL_BOTH Dizi elemanlarına hem sütun adı hem sütun numarası ile ulaşılabilir mysql_result() mysql_result, sql sorgusundan tek bir sütun içeriğini çeker. Örneğimizde sadece adi sütunu üzerinde işlem yapacağız. Sorgudan hemen sonra sonuç kümesinin satır sayısını $satir içerisine alıyoruz ve $basla değişkenini sıfıra eşitliyoruz. Ardından sonuç kümesi satır sayısı sıfıra eşit değilse(boş değilse), okunan satır sayısı toplam satır sayısına eşitlenene kadar dönecek bir döngü bloğu içerisinde mysql_result kullanıyoruz. İşlemlerin sonunda mysql bağlantısını kapatıyoruz. $sonuc = mysql_query("select adi from kitaplar"); $satir = mysql_num_rows($sonuc); $basla = ; if($satir!=) while($basla<=$satir) echo "Kitap adi: ".mysql_result($sonuc,$basla); //her satırdaki adi kolonu $basla++; else 4
Kaynak:Baturay Daylak 5