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;
?>
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!
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.
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:
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;