Skip navigation

Olvasók felvétele és listázása

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>

Licensed under the Creative Commons Attribution Non-commercial Share Alike License 4.0