kolcsonzesek.php
A kölcsönzések felhasználó felülete különbözik mind a könyveket felvivő úrlaptól, mind pedig az olvasókat felvivőtől. A kölcsönzéseknél ugyanis nem adhtatunk meg akármilyen adatot, hiszen csak olyan könyv kölcsönözhető, amit nem vettek még ki, illetve csak olyan illető kölcsönözhet, aki beiratkozott a könyvtárba. Ennek megfelelően a könyveknek is és az olvasóknak is készítünk egy-egy lenyíló listát. A könyvek listájába olyan könyveket soroluk fel, amelyek kölcsönözhetőek (vagyis ahol az olvasójegy mező értéke NULL). A megjelenítendő adatok közül nem lehet csupán egyik vagy másik attribútumot választani a KONYVEK sémából, hiszen a könyvek leltári száma egyedi, de nem informatív a felhasználó számára, a többi attribútum pedig nem egyedi. Azt a megoldást választjuk, hogy a könyvszámot és a könyv adatait egy sztringgé fűzzük össze, és így könyen olvashatóan, mégis egyértelműen ki tudjuk listázni a könyveket.
Az adatok összefűzését MySQL-ben végezzük, erre szolgál a CONCAT() függvény. A könyvek esetében az alábbi SQL utasítást kell kiadnunk:
SELECT konyvszam, CONCAT(konyvszam, ' - ', szerzo, ': ', cim, '. ', kiado, ' ', ev) AS konyv FROM KONYVEK WHERE olvasojegy IS NULL;
Fontos megjegyezni azt, hogy a lenyíló listáknál a <select> tag-ben kell megadni a változó nevét, amiben a feldolgozáshoz szeretnénk tárolni a szükséges adatokat és az <option> tag value attribútumában kell megmondanunk azt, hogy mi az az érték, amit továbbítunk. Korábban csak számokra láttunk példát. Itt a könyvek lenyíló listájában a value érékek a könyvszámok lesznek, az olvasóknál pedig az olvasójegy értékek. Így az űrlapról csak egy könyvszám-olvasójegy adatpárt továbbítunk feldolgozásra.
Az oldal alján szintén kilistázzuk a kikölcsönzött könyveket. Megjelenítjük az olvasó olvasószámát és nevét is kötőjellel elválasztva, valamint minden sorba kerül egy "Kölcsönzés törlése" feliratú gomb, ha törölni szeretnénk a kölcsönzést. Minden sorban a gomb egy-egy különálló űrlapon szerepel. A rekordra vonatkozó egyedi adatokat <input type="hidden"> tag-ekben tudunk továbbítani.
<?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>Új kölcsönzés</h1>
<form method="POST" action="kolcsonzesfelvitel.php" accept-charset="utf-8">
<label>Könyv : </label>
<select name="valasztottKonyv">
<?php
$szabadKonyvek = szabad_konyveket_listaz();
while( $egySor = mysqli_fetch_assoc($szabadKonyvek) ) {
echo '<option value="'.$egySor["konyvszam"].'">'.$egySor["konyv"].'</option>';
}
mysqli_free_result($szabadKonyvek);
?>
</select>
<br>
<label>Könyv címe: </label>
<select name="olvaso">
<?php
$olvasok = olvasolistatLeker();
while( $egySor = mysqli_fetch_assoc($olvasok) ) {
echo '<option value="'.$egySor["olvasojegy"].'">'.
$egySor["olvasojegy"]. ' - '.
$egySor["nev"]. ', ' .
$egySor["lakcim"] .'</option>';
}
mysqli_free_result($olvasok);
?>
</select>
<br>
<input type="submit" value="Elküld" />
</form>
<hr/>
<h1>Kölcsönzött könyvek listája</h1>
<table border="1">
<tr>
<th>Könyvszám</th>
<th>Cím</th>
<th>Szerző</th>
<th>Kiadó</th>
<th>Év</th>
<th>Olvasója</th>
</tr>
<?php
$konyvek = kolcsonzott_konyvek_listaja(); // 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($konyvek) ) {
echo '<tr>';
echo '<td>'. $egySor["konyvszam"] .'</td>';
echo '<td>'. $egySor["cim"] .'</td>';
echo '<td>'. $egySor["szerzo"] .'</td>';
echo '<td>'. $egySor["kiado"] .'</td>';
echo '<td>'. $egySor["ev"] .'</td>';
echo '<td>'. $egySor["olvaso"] .'</td>';
echo '<td><form method="POST" action="kolcsonzestorles.php">
<input type="hidden" name="toroltkonyv" value="'.$egySor["konyvszam"].'" />
<input type="submit" value="Kölcsönzés torlése" />
</form></td>';
echo '</tr>';
}
mysqli_free_result($konyvek); // töröljük a listát a memóriából
?>
</table>
</BODY>
</HTML>