Php İle Mysql Veritabanından Bilgi Çekme
Mysql_fetch_assoc, mysql_fetch_row, mysql_fetch_object, mysql_fetch_array ve mysql_result metodları
Php İle Mysql Veritabanından Bilgi ÇekmeUygulamada 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
<?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.
<?php
require_once(“./baglan.php”);
$sonuc = mysql_query(“select isbn,adi from kitaplar”);
if(mysql_num_rows($sonuc)!=0)
{
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{
echo “Hic kayit yok!”;
}
mysql_close($conn);
?>
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.
<?php
require_once(“./baglan.php”);
$sonuc = mysql_query(“select isbn,adi from kitaplar”);
if(mysql_num_rows($sonuc)!=0)
{
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{
echo “Hic kayit yok!”;
}
mysql_close($conn);
?>
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] 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.
<?php
require_once(“./baglan.php”);
$sonuc = mysql_query(“select isbn,adi from kitaplar”);
if(mysql_num_rows($sonuc)!=0)
{
while($oku = mysql_fetch_row($sonuc))
{
echo “Kitap adi: “.$oku[1].”<br>Kitap ISBN: “.$oku[0].”<br><br>”;
//echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik
}
}else{
echo “Hic kayit yok!”;
}
mysql_close($conn);
?>
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.
<?php
require_once(“./baglan.php”);
$sonuc = mysql_query(“select isbn,adi from kitaplar”);
if(mysql_num_rows($sonuc)!=0)
{
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{
echo “Hic kayit yok!”;
}
mysql_close($conn);
?>
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.
<?php
require_once(“./baglan.php”);
$sonuc = mysql_query(“select adi from kitaplar”);
$satir = mysql_num_rows($sonuc);
$basla = 0;
if($satir!=0)
{
while($basla<=$satir)
{
echo “Kitap adi: “.mysql_result($sonuc,$basla); //her satırdaki adi kolonu
$basla++;
}
}else{
echo “Hic kayit yok!”;
}
mysql_close($conn);
?>
mysql_fetch_object
Şurada bir bağlantı örneği var.
Kaynak:Baturay Daylak