olvasok.php
tt 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" >
<style>
label {
margin: 5px;
padding: 5px;
text-align: left;
display: inline-block;
min-width: 120px;
}
input {
margin: 5px;
padding: 5px;
text-align: left;
display: inline-flex;
vertical-align: bottom;
}
</style>
</HEAD>
<BODY>
<hr/>
<?php echo menu();?>
<hr/>
<h1>Olvasók felvitele</h1>
<form method="POST" action="olvasofelvitel.php" accept-charset="utf-8">
<label>Olvasójegy: </label>
<input type="text" name="olvasojegy" />
<br>
<label>Név: </label>
<input type="text" name="nev" />
<br>
<label>Születési dátum: </label>
<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
<br>
<label>Lakcím: </label>
<input type="text" name="lakcim" />
<br>
<input type="submit" value="Elküld" />
</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>