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?
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.
@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.