Ik wil twee query's (DELETE-Query's) in 1x uitvoeren:

DELETE FROM topics WHERE id = '".$_GET['topicdel']."'
DELETE FROM replys WHERE tid = '".$_GET['topicdel']."'

maar, dan wil ik dit dus:
<?php
$query = mysql_query(/* Allebei */ );
?>

Nu heb ik (volgensmij) ooit gelezen dat je dit kan doen door de twee query's met een ; te scheiden.

Maar als ik:
<?php
$query = mysql_query("
DELETE FROM topics WHERE id = '".$_GET['topicdel']."';
DELETE FROM replys WHERE tid = '".$_GET['topicdel']."'");
?>

doe, word de query niet uitgevoerd. Heeft iemand een idee hoe dit wel moet?
volgens mij kun je gewoon AND gebruiken.

$query = mysql_query("DELETE FROM topics WHERE id = '".$_GET['topicdel']."' AND DELETE FROM replys WHERE tid = '".$_GET['topicdel']."'");

Ik ben niet zo goed in sql, maar volgens mij moet het zo werken!
ik kan me namelijk herrineren dat ik ook ooit zoiets gebruikt heb...

Groet,

Barry
:( Werkt jammer genoeg niet..
RTFM!

Jongens, waarom kijken jullie niet in de MySQL-handleiding ? Die hebben ze echt niet voor Jan-met-de-korte-achternaam geschreven!

Daarnaast is er natuurlijk ook nog www.php.net
Sorry :$ ik wist niet dat de MySQL handleiding bestond en uit www.php.net werd ik niet veel wijzer.
Frank, doe eens een beetje lief joh :P, niet iedereen is zo'n SQL fan, ookal ben ik het roerend (in mijn zwarte koffie) met je eens..
Op speciaal verzoek van WillemJan:
<?
$query = "
DELETE
topics.*,
replys.*
FROM
topics,
replys
WHERE
topics.id = '".$_GET['topicdel']."'
OR
replys.tid = '".$_GET['topicdel']."'
";
?>
Zoiets mag het worden.

Vervolgens kun je met mysql_affected_rows() opvragen hoeveel rijen er zijn verwijderd.

Niet getest overigens.
Het zal wel zo werken, maar zet er wel ff SQL Injection beveileging in hé ;-)


<?
$query = "
DELETE
topics.*,
replys.*
FROM
topics,
replys
WHERE
topics.id = '".mysql_real_escape_string($_GET['topicdel'])."'
OR
replys.tid = '".mysql_real_escape_string($_GET['topicdel'])."'
";
?>
@Niek: Ik mag hopen dat je de query niet eens aanmaakt wanneer $_GET['topicdel'] geen nummeriek gegeven is, dat is volkomen zinloos. Ik neem even aan dat het id altijd nummeriek is, dat is dus eenvoudig vast te stellen. Gebruik ctype_digit() om dit te controleren. Vervolgens kun je de GET zonder problemen in je query opnemen, het kán alleen maar een nummer zijn.

Deze hoeft/hoort eigenlijk niet eens tussen die enkele quotes te staan, het is tenslotte een integer.
Ok, daar heb je gelijk. Maar ik denk niét dat iedereen alle data altijd controleert? zelfs ik vergeet het soms nog wel eens, en dan door toeval kom ik er nog achter.

Reageren