Je maakt een link met ?delete=... (GET methode)
Dan moet de variable ook via $_GET opgehaald worden. Ook noem je de variabele 'delete' en niet 'id'.
De goede manier zou dus zijn:
<?
mysql_query("DELETE FROM vijftig WHERE id = ".$_GET['delete']) or die(mysql_error());
?>
En ik vind dat ik nu ook wel een keer wat mag zeggen wat meestal andersom is: Eindelijk iemand die superglobals gebruikt en variabele buiten quotes haalt, top :)
Oh, een extra toevoeging nog. Vergeet niet op de pagina waarop de DELETE query wordt uitgevoerd te controleren of $_GET['delete'] wel ingesteld is en een integer is (met is_int()). Anders kan iemand door index.php?delete=1 OR id > 1
te openen je hele database leeggooien... Dat kunnen we niet gebruiken natuurlijk :)
?
Onbekende gebruiker
05-10-2004 17:26
hey hallo,
het is gelukt hoor.
Ik heb nu de volgende code voor het wissen:
<?PHP
function DeleteRow () {
include("include/database.php");
$verbinding = mysql_connect ($host, $login, $password);
$opdracht = "DELETE FROM vijftig WHERE id = " . $_GET['delete'] . "";
if (mysql_db_query ($database, $opdracht, $verbinding) ) {
echo ("rij ". $_GET['delete'] ." is verwijderd");
} else {
print ("no");
}
mysql_close ($verbinding);
}
if (!isset($_GET['delete']))
{
echo("klik op delete om iets te wissen");
}
else
{
DeleteRow ();
}
?>
maar, nu wil ik dat de pagina meteen refresht nadat de rij is gewist, hoe krijg ikd at eigenlijk voor elkaar??
$verbinding = mysql_connect ($host, $login, $password);
$opdracht = "DELETE FROM vijftig WHERE id = " . $_GET['delete'] . "";
if (mysql_db_query ($database, $opdracht, $verbinding) ) {
echo ("rij ". $_GET['delete'] ." is verwijderd");
} else {
print ("no");
}
mysql_close ($verbinding);
}
if (!isset($_GET['delete']))
{
echo("klik op delete om iets te wissen");
}
else
{
DeleteRow ();
}
?>
Als ze je helpen, kan je misschien ook luisteren...
Met dit script kan je je hele db wissen, zoals Dutchcamel zei... Nuja, wie niet luisteren wil, moet voelen, in dit geval ondervinden...
Oh, een extra toevoeging nog. Vergeet niet op de pagina waarop de DELETE query wordt uitgevoerd te controleren of $_GET['delete'] wel ingesteld is en een integer is (met is_int()). Anders kan iemand door
index.php?delete=1 OR id > 1
te openen je hele database leeggooien... Dat kunnen we niet gebruiken natuurlijk :)