heeey

Hoe kan ik een rij uit mijn database verwijderen?
Ben nog niet zo goed met MySQL dus ik weet daar de sql code nog niet voor.

En werkt deze het zelfde als de insert?


Greetz
<?php

mysql_query("DELETE FROM jouwtabel WHERE id = '1'") or trigger_error (mysql_error());

?>

GR> mebus!
Wanneer je weet hoeveel records je gaat verwijderen, zet dan ook nog even een LIMIT achteraan de query. Het zorgt voor een beetje extra veiligheid in je query. Voor je het weet ben je al je records kwijt... En weg is weg!

Bovenstaande query zou dan worden:

DELETE 
FROM 
  jouwtabel 
WHERE 
  id = 1
LIMIT 1

Bij 'id = 1' staan er geen quotes om de waarde 1, dat is niet nodig omdat het een integer is.
Sterker nog, volgens mij zou dat een error geven. (Als het veld echt INTEGER was iig.
Willem-Jan schreef op 05.06.2006 02:01
Sterker nog, volgens mij zou dat een error geven. (Als het veld echt INTEGER was iig.
Helaas, MySQL heeft er weer eens geen moeite mee dat iets niet is wat het lijkt te zijn. MySQL slikt alles voor zoete koek, ongeacht of dat problemen gaat opleveren of niet.
oke, thx allemaal!
Er oud topic, maar komt toch van pas.

Waarom kan ik een niet bestaand ID verwijderen?

<?php
$insert = "DELETE FROM
scheldwoorden
WHERE
id = ".$_GET['verwijder']."
LIMIT 1";

$voerin = mysql_query($insert) or die(mysql_error());

if($voerin)
{
$melding_scheld = 'Succesvol verwijderd';
}
else
{
//mail
}
?>
Jouw melding geeft alleen aan dat de query is gelukt, niet of er iets is verwijderd. Probeer deze eens.


if($voerin and (mysql_affected_rows() == 1))
oki thx,

ik heb nu:

<?php
if(mysql_affected_rows() < 1)
{
$melding_scheld = 'Dit scheldwoord stond niet in de database';
}
elseif($voerin)
{
$melding_scheld = 'Succesvol verwijderd';
}
//else mail
?>

en dat werkt ;-)
Als $voerin = mysql_query($insert)... niet gelukt is geeft ie nu waarschijnlijk een foutmelding op mysql_affected_rows() omdat je pas in de elseif() checked of de query is gelukt.

Reageren