Ik ben lekker bezig vandaag!
Maar weet iemand hoe ik deze drie querys in zo kan opbouwen dat ik maar één query uitvoer?
$messageID word ingevoerd bij de functie deleteMessage($messageID);

<?php
$sql = "SELECT 
        	reply_id 
	    FROM 
		reply
	    JOIN 
        	connect_bericht_reply
	    JOIN 
		berichten
            WHERE 
		bericht_id = ".$messageID;
				
	    "DELETE FROM 
		connect_bericht_reply,
		reply
            WHERE 
		reply_id = ";//uitkomst query 1
			
            "DELETE FROM
		connect_bericht_profiel,
		connect_bericht_catogorie,
		berichten
	    WHERE bericht_id = ".$messageID;
?>
DELETE FROM
connect_bericht_profiel,
connect_bericht_catogorie,
berichten,
connect_bericht_reply,
reply
WHERE
bericht_id = ".$messageID."
AND

strax verder

@Jason welke tabellen heb je?? Ik snap niet wat je met die 3 queries doet


Kun je geen gebruik maken van UNION? Ik weet niet precies hoe dat werkt, maar volgens mij is het idee dat je daarmee dit soort geintjes uit kan halen.

http://dev.mysql.com/doc/refman/5.0/en/union.html


SELECT 
  reply.reply_id AS uitkomst
FROM 
  reply
LEFT JOIN // Aangezien je iets uit de eerste tabel wil hebben moet je left join toepassen
  connect_bericht_reply
LEFT JOIN // IDEM
  berichten
WHERE 
  berichten.bericht_id = ".$messageID."
        
UNION
      
DELETE FROM 
  connect_bericht_reply,
  reply
WHERE 
  reply_id = uitkomst
 
UNION
  
DELETE FROM
  connect_bericht_profiel,
  connect_bericht_catogorie,
  berichten
WHERE
  bericht_id = ".$messageID;


Ik weet niet offie zo helemaal klopt, maar ik hoop date je er wat mee kunt!
UNION is volgens mij voor SELECT
de query is wel mogelijk we moeten alleen de juiste velden en tabellen weten.

Dit kan in PGSQL trouwens met een RULE iets van CASCADE delete en je er in een keer vanaf (spreekt namens Frank :))
Ik vrees dat er hier niet met PGSQL (wat het ook moge zijn ;-) wordt gewerkt, maar met het oude vertrouwde simpelen MySQL.

Ik heb union nog nooit gebruikt, dus ik zou niet weten hoe het wat...
SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]

Komt zo uit jouw link
Ja kan ik idd doen, maar aangezien er nu dan zoveel aan veranderd moet worden is het vrij lastig.

Ik gebruik MySQL idd, maar met de InnoDB engine, die werkt ook met Cascade etc...
@Jason geef eens duidelijk aan wat gedelete moet worden en uit welke tabellen
Ik wil een uit Bericht verwijderen uit de tabel berichten
Ik wil alles replys verwijderen uit de tabel reply
Die gekoppelt zijn aan het bericht. Deze staan in de koppeltabel connect_bericht_reply. Ook wil ik dat het bericht dat ik verwijderen uit de koppeltabel connect_bericht_profiel en uit de koppeltabel connect_bericht_catogorie.

Issie zo clear?
Maar dit is toch juist iets dat je volledig door je database laat uitvoeren? Hier hoef jij helemaal geen queries voor te schrijven, mits je relaties maar OK zijn:

Lees http://www.phphulp.nl/php/tutorials/3/274/504/ en volgende hoofdstukken eens door, want volgens mij denk je de verkeerde kant op.
Ik heb toch maar even geprobeert met CASCADE.
Graag zou ik even willen dat iemand er naar kijkt, maar de SQL is nogal groot.
Ik post het maar dan zie ik vanzelf wel of iemand zin heeft om er naar te kijken (A)


-- phpMyAdmin SQL Dump
-- version 2.10.0.2
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generatie Tijd: 08 Mei 2007 om 18:50
-- Server versie: 5.0.37
-- PHP Versie: 5.2.1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- Database: `theaterisleuk_n`
-- 

-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `berichten`
-- 

CREATE TABLE `berichten` (
  `bericht_id` int(11) NOT NULL auto_increment,
  `bericht_titel` varchar(20) collate utf8_bin NOT NULL,
  `bericht_body` blob NOT NULL,
  `bericht_aangemaakt` datetime NOT NULL,
  `bericht_aangepast` datetime NOT NULL,
  `bericht_zichtbaar` int(1) NOT NULL default '0',
  PRIMARY KEY  (`bericht_id`),
  KEY `bericht_titel` (`bericht_titel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `berichten`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `block_ip`
-- 

CREATE TABLE `block_ip` (
  `ip_id` int(4) NOT NULL auto_increment,
  `ip_ip` varchar(15) NOT NULL default '000.000.000.000',
  PRIMARY KEY  (`ip_id`),
  KEY `ip_ip` (`ip_ip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `block_ip`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `catogorieen`
-- 

CREATE TABLE `catogorieen` (
  `catogorie_id` int(1) NOT NULL auto_increment,
  `catogorie_naam` varchar(15) collate utf8_bin NOT NULL,
  PRIMARY KEY  (`catogorie_id`),
  KEY `catogorie_naam` (`catogorie_naam`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `catogorieen`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `connect_bericht_reply`
-- 

CREATE TABLE `connect_bericht_reply` (
  `bericht_id` int(11) NOT NULL,
  `reply_id` int(11) NOT NULL,
  PRIMARY KEY  (`bericht_id`),
  KEY `reply_id` (`reply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- 
-- Gegevens worden uitgevoerd voor tabel `connect_bericht_reply`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `connect_catogorie_bericht`
-- 

CREATE TABLE `connect_catogorie_bericht` (
  `catogorie_id` int(1) NOT NULL,
  `bericht_id` int(11) NOT NULL,
  PRIMARY KEY  (`catogorie_id`),
  KEY `bericht_id` (`bericht_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- 
-- Gegevens worden uitgevoerd voor tabel `connect_catogorie_bericht`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `connect_groep_profiel`
-- 

CREATE TABLE `connect_groep_profiel` (
  `profiel_id` int(4) NOT NULL,
  `groep_id` int(4) NOT NULL,
  PRIMARY KEY  (`profiel_id`),
  KEY `groep_id` (`groep_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- 
-- Gegevens worden uitgevoerd voor tabel `connect_groep_profiel`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `connect_profiel_bericht`
-- 

CREATE TABLE `connect_profiel_bericht` (
  `profiel_id` int(4) NOT NULL,
  `bericht_id` int(11) NOT NULL,
  PRIMARY KEY  (`profiel_id`),
  KEY `bericht_id` (`bericht_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- 
-- Gegevens worden uitgevoerd voor tabel `connect_profiel_bericht`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `connect_reply_profiel`
-- 

CREATE TABLE `connect_reply_profiel` (
  `reply_id` int(11) NOT NULL,
  `profiel_id` int(4) NOT NULL,
  PRIMARY KEY  (`reply_id`),
  KEY `profiel_id` (`profiel_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- 
-- Gegevens worden uitgevoerd voor tabel `connect_reply_profiel`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `groepen`
-- 

CREATE TABLE `groepen` (
  `groep_id` int(1) NOT NULL auto_increment,
  `groep_naam` varchar(12) collate utf8_bin NOT NULL,
  `groep_rechten` int(1) NOT NULL default '0',
  PRIMARY KEY  (`groep_id`),
  KEY `groep_naam` (`groep_naam`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `groepen`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `profielen`
-- 

CREATE TABLE `profielen` (
  `profiel_id` int(4) NOT NULL auto_increment,
  `profiel_gebruikersnaam` varchar(12) collate utf8_bin NOT NULL,
  `profiel_wachtwoord` varchar(32) collate utf8_bin NOT NULL,
  `profiel_naam` varchar(25) collate utf8_bin NOT NULL,
  `profiel_email` varchar(75) collate utf8_bin NOT NULL,
  `profiel_ip` varchar(15) collate utf8_bin NOT NULL default '000.000.000.000',
  `profiel_aangemeld` datetime NOT NULL,
  `profiel_aangepast` datetime NOT NULL,
  `profiel_activatiecode` varchar(20) collate utf8_bin NOT NULL,
  `profiel_geactiveerd` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`profiel_id`),
  KEY `profiel_naam` (`profiel_naam`),
  KEY `profiel_gebruikersnaam` (`profiel_gebruikersnaam`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `profielen`
-- 


-- --------------------------------------------------------

-- 
-- Tabel structuur voor tabel `reply`
-- 

CREATE TABLE `reply` (
  `reply_id` int(11) NOT NULL auto_increment,
  `reply_bericht` blob NOT NULL,
  `reply_aangemaakt` datetime NOT NULL,
  `reply_aangepast` datetime NOT NULL,
  PRIMARY KEY  (`reply_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;

-- 
-- Gegevens worden uitgevoerd voor tabel `reply`
-- 


-- 
-- Beperkingen voor gedumpte tabellen
-- 

-- 
-- Beperkingen voor tabel `berichten`
-- 
ALTER TABLE `berichten`
  ADD CONSTRAINT `berichten_ibfk_1` FOREIGN KEY (`bericht_id`) REFERENCES `connect_bericht_reply` (`bericht_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `catogorieen`
-- 
ALTER TABLE `catogorieen`
  ADD CONSTRAINT `catogorieen_ibfk_1` FOREIGN KEY (`catogorie_id`) REFERENCES `connect_catogorie_bericht` (`catogorie_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `connect_bericht_reply`
-- 
ALTER TABLE `connect_bericht_reply`
  ADD CONSTRAINT `connect_bericht_reply_ibfk_6` FOREIGN KEY (`reply_id`) REFERENCES `reply` (`reply_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
  ADD CONSTRAINT `connect_bericht_reply_ibfk_5` FOREIGN KEY (`bericht_id`) REFERENCES `berichten` (`bericht_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `connect_catogorie_bericht`
-- 
ALTER TABLE `connect_catogorie_bericht`
  ADD CONSTRAINT `connect_catogorie_bericht_ibfk_2` FOREIGN KEY (`bericht_id`) REFERENCES `berichten` (`bericht_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
  ADD CONSTRAINT `connect_catogorie_bericht_ibfk_1` FOREIGN KEY (`catogorie_id`) REFERENCES `catogorieen` (`catogorie_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `connect_groep_profiel`
-- 
ALTER TABLE `connect_groep_profiel`
  ADD CONSTRAINT `connect_groep_profiel_ibfk_3` FOREIGN KEY (`profiel_id`) REFERENCES `profielen` (`profiel_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
  ADD CONSTRAINT `connect_groep_profiel_ibfk_2` FOREIGN KEY (`groep_id`) REFERENCES `groepen` (`groep_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `connect_profiel_bericht`
-- 
ALTER TABLE `connect_profiel_bericht`
  ADD CONSTRAINT `connect_profiel_bericht_ibfk_2` FOREIGN KEY (`bericht_id`) REFERENCES `berichten` (`bericht_id`) ON DELETE NO ACTION ON UPDATE CASCADE,
  ADD CONSTRAINT `connect_profiel_bericht_ibfk_1` FOREIGN KEY (`profiel_id`) REFERENCES `profielen` (`profiel_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `connect_reply_profiel`
-- 
ALTER TABLE `connect_reply_profiel`
  ADD CONSTRAINT `connect_reply_profiel_ibfk_2` FOREIGN KEY (`profiel_id`) REFERENCES `profielen` (`profiel_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `connect_reply_profiel_ibfk_1` FOREIGN KEY (`reply_id`) REFERENCES `reply` (`reply_id`) ON DELETE NO ACTION ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `groepen`
-- 
ALTER TABLE `groepen`
  ADD CONSTRAINT `groepen_ibfk_1` FOREIGN KEY (`groep_id`) REFERENCES `connect_groep_profiel` (`groep_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `profielen`
-- 
ALTER TABLE `profielen`
  ADD CONSTRAINT `profielen_ibfk_1` FOREIGN KEY (`profiel_id`) REFERENCES `connect_profiel_bericht` (`profiel_id`) ON DELETE CASCADE ON UPDATE CASCADE;

-- 
-- Beperkingen voor tabel `reply`
-- 
ALTER TABLE `reply`
  ADD CONSTRAINT `reply_ibfk_1` FOREIGN KEY (`reply_id`) REFERENCES `connect_reply_profiel` (`reply_id`) ON DELETE CASCADE ON UPDATE CASCADE;

Reageren