Bu yazımızda da veritabanındaki kayıtları listelemeye devam edeceğiz. Örneklerimizde yine okul isimli veritabanını kullanacağız. Bu veritabanında siniflar, ogrenciler, dersler ve notlar olmak üzere 4 tane tablo vardır. Bu veritabanını indirip yükleyerek örnekleri sizler de deneyebilirsiniz. Ayrıca veritabanı bağlantısını yapan baglan.php sayfasını tüm örneklerimizde include edip kullanarak tekrar tekrar yazmayacağız.
<?php // bu sayfa baglan.php sayfasıdır. $sunucu="localhost"; $kullanici="root"; $sifre="1234"; $veritabani="okul"; if (@!mysql_connect($sunucu, $kullanici, $sifre)){ $mesaj="Veritabanı bağlantısı yapılamadı!<br>"; $mesaj.="Hata açıklaması: ".mysql_error(); die($mesaj); } if(@!mysql_select_db($veritabani)){ $mesaj="$veritabani veritabanı seçilemedi!<br>"; $mesaj.="Hata açıklaması: ".mysql_error(); die($mesaj); } ?>
Örnek: Öğrenci kayıt formu hazırlayalım. Form yapısında öğrenci sınıfı açılır listeden seçilsin. Açılır listeye de sınıf isimleri veritabanındaki siniflar tablosundan eklensin.
Not: Bu form şu an için kayıt yapmayacaktır. Sadece açılır listeye veritabanından kayıt ekleme işlemi yapılacaktır.
<!-- bu sayfa index.php sayfasıdır. --> <html> <head> <title>Öğrenci Kayıt</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> <!-- body{ background-color:#FFC; } .tablo{ border:#333 solid thin; } .etiket{ background-color:#598527; color:#FFF; font-weight:bold; } .giris{ background-color:#fff799; } --> </style> </head> <body> <form name="form1" method="post" action="index.php"> <table class="tablo" border="0" cellpadding="2" cellspacing="0"> <tr> <td align="right" class="etiket">Öğrenci No:</td><td class="giris"><input name="ogrenci_no" type="text" size="15"></td> </tr> <tr> <td align="right" class="etiket">Adı:</td><td class="giris"><input type="text" name="adi"></td> </tr> <tr> <td align="right" class="etiket">Soyadı:</td><td class="giris"><input type="text" name="soyadi"></td> </tr> <tr> <td align="right" class="etiket">Cinsiyeti:</td> <td class="giris"> <input type="radio" name="cinsiyeti" value="e" checked>Erkek <input type="radio" name="cinsiyeti" value="k">Kız </td> </tr> <tr> <td align="right" class="etiket">Sınıfı:</td> <td class="giris"> <?php include("baglan.php"); mysql_query("set names utf8"); $sonuc=mysql_query("select * from siniflar order by sinif_kodu"); echo "<select name=\"sinif_kodu\">"; while($kayit=mysql_fetch_array($sonuc)){ echo "<option value=\"",$kayit["sinif_kodu"],"\">"; echo $kayit["sinif_adi"]; echo "</option>"; } ?> </select> </td> </tr> <tr> <td class="etiket"> </td><td class="giris"><input type="submit" name="kaydet" value="Kaydet"></td> </tr> </table> </form> </body> </html>
Açılır listeye seçenek olarak her kayıt eklenmektedir. Seçeneklerin value yani değer özelliğine sınıfın kodu atanmıştır. Bunun anlamı kullanıcı kaydet dediğinde sınıf kodu gönderilecektir. Ancak ekranda ise bunlara karşılık gelen sınıf adları görülmektedir. Olması gerektiği gibi.
Örnek: Açılır listeden seçilen sınıftaki öğrencileri listeleyelim. Tabiki açılır listeye de kayıtları veritabanından ekleyeceğiz.
<!-- bu sayfa index.php sayfasıdır. --> <html> <head> <title>Öğrenciler</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> <!-- body{ background-color:#FFC; } .baslik th{ background-color:#333; color:#FFF; } .satir0{ background-color:#CFB; } .satir1{ background-color:#CFD; } th { background-color:#C60; color:#FFF; } --> </style> </head> <body> <?php include("baglan.php"); // --------------------açılır liste başlıyor echo "<form name=\"form1\" method=\"post\" action=\"index.php\">"; echo "Sınıf Seçiniz: <select name=\"sinif_kodu\">"; mysql_query("set names utf8"); $sonuc=mysql_query("select * from siniflar"); $kayit=mysql_fetch_array($sonuc); if ($_POST) $sinif_kodu=$_POST["sinif_kodu"]; else $sinif_kodu=$kayit["sinif_kodu"]; do{ echo "<option value=\"",$kayit["sinif_kodu"],"\"",($kayit["sinif_kodu"]==$sinif_kodu)?" selected":"",">"; echo $kayit["sinif_adi"]; echo "</option>"; }while($kayit=mysql_fetch_array($sonuc)); echo "</select>"; echo "<input type=\"submit\" name=\"listele\" value=\"Listele\">"; echo "</form>"; // ------------------açılır liste bitiyor echo "<table border=\"1\" width=\"600px\" cellspacing=\"2\" cellpadding=\"2\">"; echo "<tr class=\"baslik\"><th colspan=\"6\">Öğrenciler Listesi</th></tr>"; echo "<tr>"; echo "<th>S.n.</th>"; echo "<th>Numarası</th>"; echo "<th>Adı</th>"; echo "<th>Soyadı</th>"; echo "<th>Cinsiyeti</th>"; echo "<th>Sınıfı</td>"; $i=0; // S.n. (Sıra no) için kullanılacak. $sayi=0; // her satırı farklı renkte göstermek için class adında kullanılacak. mysql_query("set names utf8"); $sonuc=mysql_query("select * from ogrenciler where sinif_kodu='".$sinif_kodu."'"); while($kayit=mysql_fetch_array($sonuc)){ $sayi=($sayi)?0:1; echo "<tr class=\"satir$sayi\">"; echo "<th align=\"right\">",++$i,"</th>"; echo "<td align=\"right\">",$kayit["ogrenci_no"],"</td>"; echo "<td>",$kayit["adi"],"</td>"; echo "<td>",$kayit["soyadi"],"</td>"; echo "<td>",$kayit["cinsiyeti"],"</td>"; echo "<td>",$kayit["sinif_kodu"],"</td>"; echo "</tr>"; } echo "</table>"; ?> </body> </html>
Örnek: Numarası girilen öğrencinin bilgilerini, düzeltme amaçlı olarak formlara yazan sayfaları hazırlayalım. Tabiki burada düzeltme yapılmayacaktır. Sadece formlara bilgi yazma yapılacaktır.
<!-- bu sayfa index.php sayfasıdır. --> <html> <head> <title>Öğrenciler</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> <!-- body{ background-color:#FFC; } .baslik th{ background-color:#333; color:#FFF; } .satir0{ background-color:#CFB; } .satir1{ background-color:#CFD; } th { background-color:#C60; color:#FFF; } --> </style> </head> <body> <form name="form1" method="post" action="duzelt.php"> Öğrenci Numarasını Giriniz: <input name="numara" type="text" size="15"> <input type="submit" name="gonder" value="Gönder"> </form> <?php include("baglan.php"); echo "<table border=\"1\" cellspacing=\"2\" cellpadding=\"2\">"; echo "<tr class=\"baslik\"><th colspan=\"6\">Öğrenciler Listesi</th></tr>"; echo "<tr>"; echo "<th>S.n.</th>"; echo "<th>Numarası</th>"; echo "<th>Adı</th>"; echo "<th>Soyadı</th>"; echo "<th>Cinsiyeti</th>"; echo "<th>Sınıfı</th>"; $i=0; // S.n. (Sıra no) için kullanılacak. $sayi=0; // her satırı farklı renkte göstermek için class adında kullanılacak. mysql_query("set names utf8"); $sonuc=mysql_query("select * from ogrenciler order by ogrenci_no asc"); while($kayit=mysql_fetch_array($sonuc)){ $sayi=($sayi)?0:1; echo "<tr class=\"satir$sayi\">"; echo "<th align=\"right\">",++$i,"</th>"; echo "<td align=\"right\">",$kayit["ogrenci_no"],"</td>"; echo "<td>",$kayit["adi"],"</td>"; echo "<td>",$kayit["soyadi"],"</td>"; echo "<td>",$kayit["cinsiyeti"],"</td>"; echo "<td>",$kayit["sinif_kodu"],"</td>"; echo "</tr>"; } echo "</table>"; ?> </body> </html>
<!-- bu sayfa duzelt.php sayfasıdır. --> <html> <head> <title>Öğrenci Düzeltme</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> <!-- body{ background-color:#FFC; } .tablo{ border:#333 solid thin; } .etiket{ background-color:#598527; color:#FFF; font-weight:bold; } .giris{ background-color:#fff799; } --> </style> </head> <body> <?php $ogrenci_no=$_POST["numara"]; include("baglan.php"); mysql_query("set names utf8"); $sonuc=mysql_query("select * from ogrenciler where ogrenci_no=$ogrenci_no"); $kayit=mysql_fetch_array($sonuc); if(!$kayit) die("Öğrenci Bulunamadı! <a href=\"index.php\">Geri</a>"); ?> <form name="form1" method="post" action="index.php"> <table class="tablo" border="0" cellpadding="2" cellspacing="2"> <tr> <td align="right" class="etiket">Öğrenci No:</td> <td class="giris"><input type="text" name="ogrenci_no" value="<?php echo $kayit["ogrenci_no"];?>" /></td> </tr> <tr> <td align="right" class="etiket">Adı:</td> <td class="giris"><input type="text" name="adi" value="<?php echo $kayit["adi"];?>" /></td> </tr> <tr> <td align="right" class="etiket">Soyadi:</td> <td class="giris"><input type="text" name="soyadi" value="<?php echo $kayit["soyadi"];?>" /></td> </tr> <tr> <td align="right" class="etiket">cinsiyeti:</td> <td class="giris"> <input type="radio" name="cinsiyeti" value="e" <?php echo ($kayit["cinsiyeti"]=="e")?"checked":"";?>/>Erkek <input type="radio" name="cinsiyeti" value="k" <?php echo ($kayit["cinsiyeti"]=="k")?"checked":"";?>/>Kız </td> </tr> <tr> <td align="right" class="etiket">Sınıfı:</td> <td class="giris"> <?php mysql_query("set names utf8"); $sonuc=mysql_query("select * from siniflar order by sinif_kodu"); echo "<select name=\"sinif_kodu\">"; while($sinif=mysql_fetch_array($sonuc)){ echo "<option value=\"",$sinif["sinif_kodu"],"\"",($sinif["sinif_kodu"]==$kayit["sinif_kodu"])?"selected":"",">"; echo $sinif["sinif_adi"]; echo "</option>"; } ?> </td> </tr> <tr> <td align="right" class="etiket"> </td> <td class="giris"><input type="submit" name="kaydet" value="Kaydet" /></td> </tr> </table> </form> <p><a href="index.php">Geri</a></p> </body> </html>
Bu site meslek liselerinde bilişim bölümü web programcılığı dalında okutulan internet programcılığı dersine yardımcı olması için tasarlanmıştır. İletişim için iletisim@phpdefteri.com
Apache
PHP
MySQL
PhpMyAdmin
EasyPHP
Xampp
AppServ
Wamp
W3School
www.phpdefteri.com © 2010