|
<?php |
Der vil oftest kun være behov for at definere en enkelt eler ingen variabler.
$fejlbeskeder = ""; |
Et UPDATE program skal vide, hvilken record i databasen der skal vedligeholdes. Identen for den pågældende record - og til tider en eller flere yderlige oplysninger - tilføres normalt som URL-parametre fra det program, hvorfra beslutningen om sletning foretages (ofte et SELECT-program).
URL-parametre læses med "$_GET".
Til $_GET knyttes en if-sætning, der omringer hele DELETE-programmet og af sluttes nederst med en "else".
if (isset ($_GET['rol_id'])) // start GET { $rol_id = $_GET['rol_id']; |
Før sletning af en record i databasen er det ofte nødvendigt at afklare, om den stadig er i brug i en anden tabel (f.eks. som leverandør af tekst til stamdata). Af hensyn til funktionaliteten i et sådant program, er det væsentligt at en ident ikke slettes "i utide".
$query = "SELECT * FROM rolle_rettighed where fk_rol_id = $rol_id"; $result = mysqli_query($db_link, $query)or die (mysqli_error ($db_link)); $antal = mysqli_num_rows ($result); if($antal > 0){ $fejlbeskeder .= "Rollen er stadig knyttet til en eller flere rolle/rettigheder.<br />"; } |
Opdatering af databasen når ingen fejl.
Benyt den ønskede af de 2 kodemåder.
Der skiftes til næste program med "header".
Ved forekomst af fejl foretages ingen opdatering af databasen, men der skiftes til visning af fejlliste og "form", der nu viser de sidst indtastede data.
Det er vigtigt, at der ikke er fejl i SQL-sætningen. Er der det, risikerer man ikke, at der ikke slettes nogen record, men at alle records i tabellen slettes.
if ($fejlbeskeder == "") { $query = "DELETE FROM rolle WHERE rol_id = $rol_id "; $result = mysqli_query ($db_link, $query) or die (mysqli_error($db_link) ); header ("Location: roller_select.php"); exit; } |
if ($fejlbeskeder == "") { $sql = "DELETE FROM rolle WHERE rol_id = ?"; $query = $db_link->prepare($sql); $query->bind_param('i', $rol_id); $query->execute(); $query->close(); } |
Viser fejl, når sådanne er registreret under validering.
if (isset ($fejlbeskeder) && $fejlbeskeder != "") { $fejlbeskeder .= "aktuelt programnavn"; echo "<fieldset class='red'>"; echo "<legend>Fejltekster</legend>"; echo $fejlbeskeder; echo "</fieldset>"; } |
Afslutning af $_GET-funktionaliteten.
} else // GET { echo "<p>Der problemer med URL-parameter i adresselinien</p>"; echo "<p><a href='index.php'>Gå tilbage til oversigtssiden</a></p>"; } // slut isset GET |
?> |