EGEMAN | 26 Ağustos 2008 10:52 | Verileri Sıralı Listeleme PHP ile MySQL veritabanına bağlanıp veri alış verişi yapabilirsiniz. Çokca verinin bulunduğu bir ver kümesinde ki verileri listelemek istediğimizde verileri belli bir aralıkla listelemek gerekir. PHP- Kodu:
<html> <head> <title>Listeleme</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" /> </head> <body> <table align="center" width"="50%"> <tr style="background-color:#CC0000;font-weight:bold"> <td>No</td> <td>Adı</td> <td>SoyAdı</td> <td>Mail</td> </tr> <?php if (!$limit) $limit=0; try { $db = new mysqli("localhost","root","","pusula"); if ( mysqli_connect_error()) throw new Exception("MySQL'e Bağlanamadım"); } catch (Exception $e) { die("{$e->getMessage()}"); } try { $sql = "SELECT * FROM uyeler2 LIMIT $limit, 10"; $db->query("SET NAMES 'LATIN5'"); if(! $sorgu = $db->query($sql) ) throw new Exception("Sorgumuz Çalışmadı"); while ($oku = $sorgu->fetch_array() ) { if ($oku[0] %2) $renk="orange"; else $renk="yellow"; printf(" <tr style='background-color:$renk'> <td>%s</td> <td>%s</td> <td>%s</td> <td>%s</td> </tr>", $oku[0], $oku[1], $oku[2], $oku[3] ); } $sorgu->close(); } catch (Exception $e) { die("{$e->getMessage()}"; } ?> </table> <div align="center"> <?php try { $sql = "SELECT COUNT(1) AS toplam FROM uyeler2"; $sorgu = $db->query($sql); $toplam = $sorgu->fetch_assoc(); if ( $toplam[toplam] > 10 ) { $satir = 0; while ($satir < $toplam[toplam]) { $sayi++; if ($limit == $satir) echo " [ $sayi ] "; else echo "<a href='?limit=$satir'>$sayi</a> "; $a++; $satir = $satir + 10; } } $sorgu->close(); } catch (Exception $e) { die("$e->getMessage()}"; } $db->close(); ?> </div> </body> </html>
Burada verdiğim ikinci PHP kodunda, verilerin sayısını öğrenmek için SQL cümleciğinden yararlandık. Bunun bir diğer alternatifi düz veri listeleyen SQL cümleciğini oluşturup, çıkan sonuçtan veri sayısını PHP'yle okutmaktır.
Yalnız bu yöntem performans açısından son derece sakıncalıdır. Zira 1 milyon gibi bir veri içeren veritabanında bu tip bir kullanım çılgınlık olacaktır. |