Skip navigation

Kölcsönzések törlése

kolcsonzestorles.php

A kölcsönzések törlése úgy van megvalósítva, hogy a kikölcsönzött könyvek táblázatában minden sorban található egy "Kölcsönzés törlése" gomb. Annak a cellának a tartalma, amelyikben ez a gomb található egy űrlap, amely a gombon kívül egy nem látható elemet is tartalmaz. Ebben a rejtett  elemben tároljuk el annak a könyvnek a könyvszámát, amelynek adatait a sorban kilistáztuk. Az űrlap ezt a könyvszámot a kolcsonzestorles.php fájlnak adja tovább, amely meghívja a db_fuggvenyek.php-ben megvalósított kolcsonzes_torlese() függvényt.

A kolcsonzestorles.php fájl tartalma a következő:

<?php

include_once('db_fuggvenyek.php');

$toroltkonyv = $_POST["toroltkonyv"];

if ( isset($toroltkonyv) ) {
    
    $sikeres = kolcsonzes_torlese($toroltkonyv);
    
    if ( $sikeres ) {
        header('Location: kolcsonzesek.php');
    } else {
        echo 'Hiba történt a kölcsönzés törlése során';
    }
    
} else {
    echo 'Hiba történt a kölcsönzés törlése során';
    
}

?>

kolcsonzes_torles()

A kölcsönzések törlése ebben az esetben nem jelent  valódi törlést, csupán kapcsolatok szétbontását jelenti. Nem kell mást tennünk, mint a megfelelő sorban NULL értékre állítani az olvasojegy attribútum értékét a KONYVEK táblában.

UPDATE KONYVEK SET olvasojegy = NULL WHERE konyvszam = $konyvszam;

A törlendő könyv könyvszámát természetesen most sem közvetlenül az SQL utasításnál adjuk meg, hanem előkészítjük az  utasíttást a mysqli_prepare() függvénnyel, majd hozzákötjük a paraméterként megadott könyvszámot.

function kolcsonzes_torlese($konyvszam) {
    if ( !($conn = konyvtar_csatlakozas()) ) { // ha nem sikerult csatlakozni, akkor kilepunk
        return false;
    }
       
    // elokeszitjuk az utasitast
    $stmt = mysqli_prepare( $conn,"UPDATE KONYVEK SET olvasojegy = NULL WHERE konyvszam = ?");
       
    // bekotjuk a parametereket (igy biztonsagosabb az adatkezeles)
    mysqli_stmt_bind_param($stmt, "s", $konyvszam);
    
    // 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;
}