olvasok.php
Itt is egy egyszerű űrlapról van szó, amely nagyon hasonlít az előzőekben látott könyvfelviteli oldalra. Az újdonság az, hogy a születési dátumot lenyílólisták segítségével választjuk ki. Ez ugyan csökkenti a hibák számát, de nem oldja meg teljesen a problémát, mert nem nézi külön a február hónapot és a 30-31 napos hónapok különbségét. Két oka van annak, hogy ezt a megoldást választjuk a születési dátum megadására. Az egyik, hogy így biztosan "jó" dátumformátumot tudunk továbbítani az adatbázis felé, másrészről pedig áttekintjük a lenyíló lista elem kezelését. A lenyíló listákat itt egy számlálásos ismétléses vezérléssel töltjük fel, ez PHP kódrészletet tartalmaz. A változó nevét (amelyen átvisszük a kiválasztott értéket), a <select > tag-ben kell megadni, az értékét pedig az <option > tag value attribútumából kapja meg. az <option> </option> címkék között szereplő tartalom a lenyíló lista egy elemeként fog megjelenni. Az űrlapon megadott adatokat az olvasofelvitel.php fájl fogja feldolgozni.
Az oldal alján itt is kilistázzuk a felhasználókat. Ehhez készítettünk egy olvasolistatLeker() függvényt a db_fuggvenyek.php fájlba. Ez a függvény az olvasókat tartalmazó eredménylistát ad vissza, amelynek sorait a mysqli_fetch_assoc() függvénnyel asszociatív tömbként elemzünk ki. A születési dátumoknál ahhoz, hogy "szépen" jelenjen meg a détum, át kell formázni. Erre használjuk a date_format() és a date_create() PHP függvényeket. A date_format() függvényben adjuk meg a formátum-sztringet, vagyis hogy hogyan jelenítsük meg a dátum egyes elemeit.
<?php
include_once('db_fuggvenyek.php');
include_once('menu.php');
?>
<!DOCTYPE HTML>
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=UTF8" >
</HEAD>
<BODY>
<hr/>
<?php echo menu();?>
<hr/>
<h1>Olvasók felvitele</h1>
<form method="POST" action="olvasofelvitel.php" accept-charset="utf-8">
<table>
<tr>
<td>Olvasójegy: </td>
<td><input type="text" name="olvasojegy" /></td>
</tr>
<tr>
<td>Név: </td>
<td><input type="text" name="nev" /></td>
</tr>
<tr>
<td>Születési dátum: </td>
<td>
<select name="szulev" />
<?php
for ($i=1900; $i<2100; $i++) {
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select> év
<select name="szulhonap" />
<?php
for ($i=1; $i<12; $i++) {
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select> hónap
<select name="szulnap" />
<?php
for ($i=1; $i<31; $i++) {
echo '<option value="'.$i.'">'.$i.'</option>';
}
?>
</select> nap
</td>
</tr>
<tr>
<td>Lakcím: </td>
<td><input type="text" name="lakcim" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Elküld" /></td>
</tr>
</table>
</form>
<hr/>
<h1>Olvasók listája</h1>
<table border="1">
<tr>
<th>Olvasójegy</th>
<th>Név</th>
<th>Születési dátum</th>
<th>Lakcím</th>
</tr>
<?php
$olvasok = olvasolistatLeker(); // ez egy eredményhalmazt ad vissza
// soronként dolgozzuk fel az eredményt
// minden sort egy asszociatív tömbben kapunk meg
while( $egySor = mysqli_fetch_assoc($olvasok) ) {
echo '<tr>';
echo '<td>'. $egySor["olvasojegy"] .'</td>';
echo '<td>'. $egySor["nev"] .'</td>';
echo '<td>'. date_format(date_create($egySor["szuldatum"]), 'Y. m. d.') .'</td>';
echo '<td>'. $egySor["lakcim"] .'</td>';
echo '</tr>';
}
mysqli_free_result($olvasok); // töröljük a listát a memóriából
?>
</table>
</BODY>
</HTML>