Kayıt Listeleme (PHP)
Bu dersimizde veritabanından alınan kayıtları web sayfasında listelemeye çalışacağız. Bunun için sırasıya şu işlemleri yapacağız:

  • Veritabanı bağlantısı yapılacak
  • Kullanılacak karakter seti belirtilecek
  • Listelenecek kayıtları ifade eden SQL sorgusu çalıştırılarak kayıtlar çekilecek
  • Çekilen kayıtlar kümesinden her kayıt tek tek çekilerek sayfaya yazdırılacak

Yukarıdaki maddeler aslında bir bakıma programımızın algoritmasıdır. Bu işlemleri gerçekleştirmek için bazı yeni fonksiyonlar kullacağız. Bunlar şunlardır:
1) SQL Sorgularını Çalıştırma (mysql_guery)
SQL sorgularını çalıştırmak için mysql_guery($sorgu); fonksiyonu kullanılır. Yazılan SQL sorgusuna göre geriye dönen değer farklı olabilir. Örneğin yazılan sorgu; karakter setini belirtme gibi bir bildirim ise, kayıt girme, güncelleme yada silme gibi bir işlem ise geriye, işlemin gerçekleşip gerçekleşmediğini ifade eden true yada false değeri döner. Eğer ki bir listeleme sorgusu yapılmış ise geriye listelenen kayıtlar döner. Dönen kayıtlar aşağıdaki gibi bir değişkene ($sonuc) atanır.

$sonuc=mysql_query($sorgu);

 

2) Çekilen Kayıtları Alma

mysql_query ile çekilen kayıtların atandığı değişkenden ($sonuc) kayıtları tek tek almak için 4 farklı fonksiyon kullanılır. Bu fonksiyonlardan dönen değerler aşağıdaki gibi bir değişkene ($kayit) atanır.

  • $kayit=mysql_fetch_assoc($sonuc);  >$sonuc değişkenindeki kayıtlar kümesinden bir kayıt çeker. Geriye bir dizi döner. Yani $kayit değişkeni bir dizi değişkendir. Bu dizide veritabanındaki kayıtların bilgileri saklanır. Bu bilgilere ulaşmak için dizi indisi olarak sadece alan adları kullanılır.
    Örneğin; öğrenci adını ekrana yazdırmak için echo $kayit[“adi”]; komutu kullanılır.
  • $kayit=mysql_fetch_row($sonuc); > $sonuc değişkenindeki kayıtlar kümesinden bir kayıt çeker. Geriye bir dizi döner. Bu dizide veritabanındaki kayıtların bilgileri saklanır. Bu bilgilere ulaşmak için dizi indisi olarak sadece 0,1,2,3,… şeklindeki sayılar kullanılır. Tablodaki birinci alana karşılık 0, ikinci alana karşılık 1, ……. kullanılır.
    Örneğin; ikinci alan olan öğrenci adını ekrana yazdırmak için echo $kayit[1]; komutu kullanılır.
  • $kayit=mysql_fetch_array($sonuc); > $sonuc değişkenindeki kayıtlar kümesinden bir kayıt çeker. Geriye bir dizi döner. Bu dizide veritabanındaki kayıtların bilgileri saklanır. Bu bilgilere ulaşmak için dizi indisi olarak hem alan adları hem de 0,1,2,3,… şeklindeki sayılar kullanılılır. Tablodaki birinci alana karşılık 0, ikinci alana karşılık 1, ……. kullanılır.
    Örneğin; ikinci alan olan öğrenci adını ekrana yazdırmak için echo $kayit[“adi”]; komutu yada echo $kayit[1]; komutu kullanılır.
  • $kayit=mysql_fetch_object($sonuc); > $sonuc değişkenindeki kayıtlar kümesinden bir kayıt çeker. Geriye bir nesne döner. Bu nesnede veritabanındaki kayıtların bilgileri saklanır. Bu bilgilere ulaşmak için alan adları kullanılır.
    Örneğin; öğrenci adını ekrana yazdırmak için echo $kayit->ogrenci_adi; komutu kullanılır.
  • örnek :
<html>
   <head>
      <title>Kayıt Listeleme</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   </head>
   <body>
   <?php
    $sunucu="localhost";
    $kullanici="root";
    $sifre="0320";
    $veritabani="okul";
 
   if (@mysql_connect($sunucu,$kullanici,$sifre)==false){
      $mesaj="<b>Hata</b>: Bağlantı başarısız!
";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }
 
   if (@mysql_select_db($veritabani)==false){
      $mesaj="<b>Hata</b>: $veritabani veritabanı seçilemedi!
";
      $mesaj.="<b>Hata açıklaması</b>: ".mysql_error();
      die($mesaj);
   }
     
    // kullanılacak karakter seti bildiriliyor
    mysql_query("set names utf8"); 
     
    // tüm kayıtlar veritabanından çekiliyor
    $sonuc=mysql_query("select * from ogrenciler");
     
    //Çekilen öğrenciler 4 farklı yöntem ile ekrana yazdırılacak
    // ----------------1---------------------
    $kayit=mysql_fetch_assoc($sonuc);
    echo $kayit["ogrenci_no"],"-",$kayit["adi"]," ",$kayit["soyadi"],"-",$kayit["cinsiyeti"],"-",$kayit["sinif_kodu"],"
";
     
    // ----------------2---------------------
    $kayit=mysql_fetch_row($sonuc);
    echo $kayit[0],"-",$kayit[1]," ",$kayit[2],"-",$kayit[3],"-",$kayit[4],"
";
     
    // ----------------3---------------------
    $kayit=mysql_fetch_array($sonuc);
    echo $kayit["ogrenci_no"],"-",$kayit["adi"]," ",$kayit["soyadi"],"-",$kayit["cinsiyeti"],"-",$kayit["sinif_kodu"],"
";
    echo $kayit[0],"-",$kayit[1]," ",$kayit[2],"-",$kayit[3],"-",$kayit[4],"
";
     
    // ----------------4---------------------
    $kayit=mysql_fetch_object($sonuc);
    echo $kayit->ogrenci_no,"-",$kayit->adi," ",$kayit->soyadi,"-",$kayit->cinsiyeti,"-",$kayit->sinif_kodu,"
";
   ?>
</body>
</html>