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

Veritabani tablosundan cekilen verilerin HTML sayfasinda numaralandirilarak goruntulenmesi
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 =>>