Skip navigation

Olvasók felvitele

olvasofelvitel.php

A programrészlet hasonló elveket követ, mint a könyvek felvitel űrlap feldolgozása. Az újdonság itt is a dátumkezelésből adódik. Célszerű használni ugyanis dátumkezelő és -átalakító függvényeket. Ennek az az oka, hogy az egyes adatbáziskezelő rendszerek csak bizonyos formátumsztringnek megfelelő formátumban ismerik fel a dátumokat, és ha nem ezeket követjük, akkor rosszul adhatjuk meg a dátumot.

Ennek elkerülése érdekében már az űrlapon külön adatként kezeljük az évet, a hónapot és a napot. A date() és mktime() függvények segítsével állítunk elő megfelelő formátumú dátumot.

<?php

include_once("db_fuggvenyek.php"); // fel fugjuk használni ezeket a függvényeket

// lekérjük a POST-tal átlküldött paramétereket,
// ellenőrizzük azt is, hogy kaptak-e értéket

$v_olvasojegy = $_POST['olvasojegy'];
$v_nev = $_POST['nev'];
$v_szulev = $_POST['szulev'];
$v_szulhonap = $_POST['szulhonap'];
$v_szulnap = $_POST['szulnap'];
$v_szuldatum = date('Y-m-d', mktime(0,0,0, $v_szulhonap, $v_szulnap, $v_szulev));
$v_lakcim = $_POST['lakcim'];

if ( isset($v_olvasojegy) && isset($v_nev) &&
     isset($v_szuldatum) && isset($v_lakcim) ) {

    // beszúrjuk az új rekordot az adatbázisba
    olvasot_beszur($v_olvasojegy, $v_nev, $v_szuldatum, $v_lakcim);
    
    // visszatérünk az index.php-re
    header("Location: olvasok.php");

} else {
    error_log("Nincs beállítva valamely érték");
    
}

?>

olvasot_beszur()

Az olvasot_beszur() függvényt a db_fuggvenyek.php fájlban valósítottuk meg. Hasonlóan a könyvbeszúráshoz ez a függvény is előkészíti az INSERT parancsot, átadja a szükséges adatokat (amelyeket a függvény paraméterül kap meg), majd végrehajtja az SQL utasítást.

function olvasot_beszur($olvasojegy, $nev, $szuldatum, $lakcim) {
    if ( !($conn = konyvtar_csatlakozas()) ) { // ha nem sikerult csatlakozni, akkor kilepunk
        return false;
    }
   
    // elokeszitjuk az utasitast
    $stmt = mysqli_prepare( $conn,"INSERT INTO OLVASOK(olvasojegy, nev, szuldatum, lakcim) VALUES (?, ?, ?, ?)");
    
    // bekotjuk a parametereket (igy biztonsagosabb az adatkezeles)
    mysqli_stmt_bind_param($stmt, "dsss", $olvasojegy, $nev, $szuldatum, $lakcim);
    
    // lefuttatjuk az SQL utasitast
    $sikeres = mysqli_stmt_execute($stmt);
        // ez logikai erteket ad vissza, ami megmondja, hogy sikerult-e
        // vegrehajtani az utasitast
        
    mysqli_close($conn);
    return $sikeres;  
}