MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Veritabani tablosundan cekilen verilerin HTML sayfasinda numaralandirilarak goruntulenmesi Yazar: Serkan Tarih: 01/04/02

MySQL veritabani tablolarinda kullanilan ve bir tablo alaninin
AUTO_INCREMENT olarak tanimlanmasi sonucu her satirdaki verinin kolayca
indexlenebildigi (MySQL Primary Key olarak tanimalanan alani ayni
zamanda indexler.) ve birbirinden essiz olarak ayrilabildigi alanlari tutup
da verilerinizi web uzerinde gosterirken numaralandirmak icin kullanmayiniz.

Unutmayin tablodaki her alan PRIMARY KEY (birincil anahtar) olarak
tanimlanabildigi gibi bu tablo alanlarinin birlesimi olarak da PRIMARY KEY
tanimlanabilir.Sonucta bir veriyi sildiginizde artik o alana ayrilmis olan
sayisal deger tabloda bir asimetriklik yaratir.Ornegin verileriniz 1,2,3,4,5...
olarak siralaniyor ise dogal olarak siz 4 degerine sahip veriyi sildiginizde
artik bu sayisal siralama da bozulur.

Bu durumda direkt olarak bu alandan aldiginiz verileri,asagidan yukari dogru
siralama yaparken HTML sayfasinda index olarak kullanirsaniz,sonucta ilk
baslarda basarili olsaniz dahi sonradan yeni veriler eklendiginde veya
silindiginde sizde bu isten zararli cikarsiniz...

Bu ornegimizde sizlere bir dongu icinde verilerinizi nasil kolayca
numaralandirabileceginizi gosterecegiz.Boylece veritabanindaki bir alani alip
gostermek yerine dongu sayacini siralama araci olarak kullanacagiz.

Veritabani tablosundaki 1,2,3,4,5,7,9,12 gibi degerler artik bizim icin herhangi
bir sorun teskil etmeyecek.Hem zaten o alanlar verileri kullaniciya gosterirken
siralama araci olarak degil,verileri tanimlamak icin birer essiz anahtar olmasi
amaciyla kullaniliyorlar...

Simdi elimizde bir veritabani tablosu var ve bizde bu tablodan yapilan arama
sonuclarini ekranda listeleyecegiz.Bu listeleme ornegin 8 kayit arama sonucunda
bulunmus ise 1 den 8'e kadar yapilacak.Ornegimizde bir kitapcidaki veritabaninda
ornegin degisik kategorilerdeki kitaplari verdigimiz anahtar kelimelerle
aradigimizi dusunelim.Kullanici bir cek-birak menuden kategoriyi seciyor ve
altindaki kucuk arama kutusuna ise istedigi anahtar kelimeyi yaziyor.

Simdi bu HTML arama sayfasini gormek icin asagidaki linke tiklayiniz :

http://www.turk-php.com/ornekler/mysql/kitap_ara.html

Evet bu basit sayfayi gordugunuze gore simdi bu sayfadan alinan verilerin MySQL
veritabaninda, PHP kullanilarak nasil uygulandigina bakalim.Hersey belirli bir
sira ile ve normal sekilde gerceklestiriliyor.Tek fark HTML ciktisi alinirken
buldugumuz arama sonucuna gore tum kayitlari 1 den baslayarak numaralandirarak
listeliyoruz...

Sozu fazla uzatmadan koda gecelim :

> <html>
> <head>
> <title>Arama Sonuclari</title>
> <body>
> <h1> .::: Arama Sonuclari :::.</h1>
> <?php
> trim ($aranan_kelime); //Kelimenin saginda ve solundaki beyaz bosluklari sil

> if (!$aranan_kategori || !$aranan_kelime)
> {
> echo "Arama ile ilgili tum detaylari girmediniz";
> exit;
> }

> $aranan_kelime = addslashes($aranan_kelime); //Gerekli olan yerlere slash ekle
> $aranan_kategori = addslashes($aranan_kategori);

> $db = mysql_pconnect("localhost","turkphp_user","*******");
> if (!$db)
> {
> echo "Veritabani ile ilgili bir problem var";
> exit;
> }

> mysql_select_db("turkphp_veritabani");

> $sorgu = "SELECT * FROM kitaplar";
> $sorgu .= " WHERE ". $aranan_kategori ." LIKE '%". $aranan_kelime ."%'";

> $sonuc = mysql_query ($sorgu);

> $sonuc_sayisi = mysql_num_rows($sonuc);

> echo "<p>Bulunan Sonuc Sayisi : ". $sonuc_sayisi ."</p>";

> for ($i=0; $i<$sonuc_sayisi;$i++)
> {
> $satir = mysql_fetch_array($sonuc);
> echo "<p><strong>". ($i+1) ."Baslik:";
> echo htmlspecialchars(stripslashes($satir["baslik"]));

> echo "</strong><br>Yazar:";
> echo htmlspecialchars(stripslashes($satir["yazar"]));

> echo "<br>ISBN:";
> echo htmlspecialchars(stripslashes($satir["isbn"]));

> echo "<br>Fiyat:";
> echo htmlspecialchars(stripslashes($satir["fiyat"]));
> echo "</p>";

> }
> ?>
> </body>
> </html>

Ornek Dosyalar

http://www.turk-php.com/ornekler/mysql/kitap_ara.html

http://www.turk-php.com/ornekler/mysql/kitap_ara.phps

http://www.turk-php.com/ornekler/mysql/kitap_ara.sql

Serkan Hadi Ceylani
serkan@turk-php.com

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>