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

Unutmayin tablodaki her alan PRIMARY (birincil anahtar) olarak
tanimlanabildigi gibi bu tablo alanlarinin birlesimi olarak da PRIMARY
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 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, 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 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
altindaki kucuk arama kutusuna ise istedigi anahtar kelimeyi yaziyor.

Simdi bu arama sayfasini gormek icin asagidaki linke tiklayiniz :

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

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

Sozu fazla uzatmadan koda gecelim :

<>
<head>
<title>Arama Sonuclari</title>
<body>
<h1> .::: Arama Sonuclari :::.</h1>
<?
trim ($aranan_kelime); //Kelimenin saginda 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>
</>

kaynak: ordan burdan

Tags: , , , , , , , , , , , , , , ,
Php - Veritabani Tablosundan Cekilen Verilerin Html Sayfasinda Numaralandirilarak Goruntulenmesi (scripti, nasıl, nedir?) konusu
Benzer yazılar:
    Benzer yazı yok