Konular
EBooklar

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
   
<?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

Kaynak:Baturay Daylak

Yorumunuzu Ekleyin


Yorumlar

  1. Halis
    nesne yönelimli olarak veri çekerken assoc kullanıyodum bi türlü ekrana veri yazdıramadım aradığım şey fetch_object mi bnm için çok yararlı oldu teşekkürler
    16 Ekim 2012 14:42:16, Salı Like
  2. selim
    merhaba ben basit bir rezervasyon sistemi yapacağım, dönem ödevim olduğu için erkenden yapmam lazım. anlatıyorum... veri tabanındaki rezervasyon tablosunda oda seçeneğinden gelen veriye göre hareket edeceğim yani bu sayfada yazağım kodların algoritması şöyle olacak... sayfa load olduğunda veri tabanı kontrol edilecek "oda" alanında 1 var mı var ise 1. radio yu disable yap , 2 var mı var i ise 2. radio yu disable yap yok ise birşey yapma .... bu şekilde olacak sadece oraya yazacağım kodlar hakkında yardımcı olsan çok minnettar olacağım
    12 Aralık 2012 22:30:41, Çarşamba Like
  3. Salih
    Verdiğiniz bilgiler için teşekkürler. Benim bikaç sorum olacak elimde cms çince sistemler var çinin baidu haritasını kullanıyor bende yerine yandex haritalarını kullanmak istiyorum haritada konumları elle girmek gerekiyor fakat her kullanıcının farklı adresleri var bunuda sqlden çekmek istedim olmadı... Bana yardımcı olabilirmisiniz?
    04 Nisan 2013 21:19:43, Perşembe Like
  4. sdfsdfs
    En İyisi Sheel :
    14 Haziran 2014 18:33:39, Cumartesi Like
  5. ufuk
    Paylaşım için teşekkürler, Benim sorum şu şekilde olucak; veri çekmek için neden aynı işi yapan bu kadar fonksiyona ihtiyaç duyulmuştur? Acaba bu fonksiyonların birbirine göre veri çekme işlemini yaparken bir güvenlik zaafiyet dereceleri var mıdır? Hangisini kullanmalıyız?
    15 Haziran 2014 05:31:17, Pazar Like
  6. ozge
    Çok faydalı bir yazı olmuş. Elinize sağlık. Tez konumda bana faydası olacak bayaaa http://www.ledtvfiyatlari.net/
    29 Eylül 2014 12:20:43, Pazartesi Like
  7. cem
    cem
    merhabalar arkadaslar gunlerdir yapamadigim bir sorunu sizlerle paylasmak istiyorum.

    benim bir sitem var ve siteye kayitli olan br kisi siteye ilan verdi diyelim ve siteye verilen ilaniben ilan verenin kac ilan verdigini ona rakam olarak gostermek istiyorum. yani toplamornek diyeleim

    verilen ilan 1diye yazdirmak istiyorum tabi her ilan verdiginde bu rakamlar artacak ilan durumuna gore,,php bilgim fazla degim girilienilani rakam ile gostermek istiyorum. yardim icin cok tesekurler...
    08 Kasım 2015 11:28:34, Pazar Like


  • Kurallı İfadeler (regex Engine)
  • Kurallı İfadeler (regex Engine) ~ 28,886

    Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşm...




  • PHP ile PDF dosya oluşturmak
  • PHP ile PDF dosya oluşturmak ~ 22,581

    Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak


  • PHP nedir?
  • PHP nedir? ~ 21,105

    HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.


  • $_FILES
  • $_FILES ~ 20,077

    Örnek kod ve açıklamalar



  • Oop - Nesne Yönelimli Programlama
  • Oop - Nesne Yönelimli Programlama ~ 17,611

    Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri


  • Xampp Kurulumu ~ 16,632

    Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.




  • Php İle Excel Dosyası Oluşturmak
  • Php İle Excel Dosyası Oluşturmak ~ 15,974

    Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle...


  • Verileri doğrulamak için PHP ile filtreleme işlemleri
  • Verileri doğrulamak için PHP ile filtreleme işlemleri ~ 15,649

    Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve ...


  • En iyi 25 php template motoru
  • En iyi 25 php template motoru ~ 15,157

    Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için t...



  • Php Mysql to XML
  • Php Mysql to XML ~ 14,869

    Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.



  • Dizi Tanımlamaları
  • Dizi Tanımlamaları ~ 14,538

    PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür


  • $_SERVER
  • $_SERVER ~ 13,918

    $_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazıl...


  • Php ile Oturum Yönetimi (SESSION)
  • Php ile Oturum Yönetimi (SESSION) ~ 13,884

    Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.