Ik wil items uit de databse verwijderen. Ik gebruik daarvoor 2 bestanden.
1. overzicht.php
<?
session_start();
if(!$_SESSION['Login'])
die("Je moet eerst ingelogd zijn...");
?>
<html>
<head>
<link rel='stylesheet' href='../zon.css'>
<title>Overzicht</title>
</head>
<body>
<center><h3>Overzicht artikelen Diabetes Hulmiddelen Service</h3>
<?
if(!@include"connect.php")
die("connect.php niet gevonden");
$sql = "SELECT * FROM dhs";
$res = mysql_query($sql) or die("Er is iets fout gegegaan:<br><br>" . mysql_error());
if(mysql_num_rows($res)){
echo"<table cellpadding='2' cellspacing='1' bgcolor='#FFFFFF'>";
$tr = 1;
while($rij = mysql_fetch_assoc($res))
{
if($tr)
echo"<tr>";
echo"
<table border='2' id='1' bordercolor='0000FF' cellspacing='1' bgcolor='#FFFFFF' cellpadding='5' width='100%'>
<tr>
<td valign='top'>
<table id='2' width='100%'>
<tr>
<th width='5%' align=\"left\">Id</th><th width='30%' align=\"left\">Artikel</th><th width='30%' align=\"left\">Eenheden</th><th width='35%' align=\"left\">Actie</th>
<tr>
<td><div align=\"left\"><font size=\"2\">" . $rij['id'] . "</font></div></td>
<td><div align=\"left\"><font size=\"2\">" . $rij['artikel'] . "</font></div></td>
<td><div align=\"left\"><font size=\"2\">" . $rij['eenheden'] . "</font></div></td>
<td><div align=\"left\"><font color=\"#000000\" size=\"1\"><a href='bewerken.php?id=" . $rij['id'] . "'>Bewerken</a> - <a href='verwijder.php?id=" . $rij['id'] . "'>Verwijderen</a> - <a href='toevoegen.php?id=" . $rij['id'] . "'>Toevoegen</a></font></div></td></tr>
</table>
</td>
</tr>
</table>
</td>
";
if(!$tr)
echo"<td></td>";
echo"</table><br><br>";
}
}else{
echo"Geen artikelen gevonden...<br><br>";
}
?>
</body>
</html>
Dit werkt volgens mij goed, behalve opmaak maar die vraag heb ik in een andere topic al gezet. Nu wil ik een artikel verwijderen en heb daarvoor in de database een kolom id aangemaakt met de volgende instellingen: 'id' int not null auto_increment primary key
Als ik iets toevoeg gaat dit goed. Echter nu wil ik een record verwijderen mbv verwijder.php
<?PHP
// verbinding database
include("connect.php");
// controleren of pagina zich zelf heeft aangeroepen
if (isset($_POST["bevestiging"])){
$query="DELETE FROM dhs WHERE id='" .$_POST["artikel"] ."'";
$result=mysql_query($query) or die ("FOUT: " . mysql_error());
echo("De volgende opdracht is uitgevoerd: <b>$query</b>\n");
if ($result){
echo ("Artikel " .$_POST["artikel"] . " is verwijderd<br>\n");
echo ("<a href=\"overzicht.php\">Terug naar artikel overzicht </a>");
}
}else{
// pagina niet zich zelf aangeroepen, nu bevestiging vragen
$query = "SELECT * FROM dhs WHERE id='" .$_GET["id"]."'";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
?>
<html>
<head>
<title>Verwijderen: weet u het zeker?</title>
</head>
<body>
<h2>Let op: wilt u deze gegevens verwijderen?</h2>
<?php
while (list($id, $artikel, $eenheden ) =
mysql_fetch_row($result)){
echo ("Artikel Id: $id<br>
Artikel: $artikel<br>
Eenheden: $eenheden<br>
<hr>");
}
?>
<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post"
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="artikel" value="<?php echo($_GET["id"]);?>">
<input type="Submit" value="Ja, verwijderen">
<input type="Button" value="Nee, terug"
onclick="javascript:history.back();">
</form>
<?php
//else-blok correct afsluiten
}
?>
</body>
</html>
Ik krijg dan de volgende output op mijn scherm:
De volgende opdracht is uitgevoerd: DELETE FROM dhs WHERE id='3' Artikel 3 is verwijderd
Terug naar artikel overzicht
Het lijkt alsof alles goed gaat maar de variabele $artikel heeft de waarde van die $id zou moeten hebben. Als ik in verwijder.php $artikel vervang door $id gaat het helemaal fout.
Als ik kijk is er ook niks verwijderd. Het lijkt wel alsof ik vanuit overzicht.php de variabelen verkeerd vul.
Ik hoop dat iemand ziet waar ik de mist in ga. Alvast bedankt.
801 views