Versio

Query inelkaar draaien?

Overzicht Reageren

Jason de Ridder

Jason de Ridder

07/05/2007 21:46:00
Quote Anchor link
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);
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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;
?>
 
PHP hulp

PHP hulp

25/05/2012 13:47:56
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Klaasjan Boven

Klaasjan Boven

07/05/2007 22:11:00
Quote Anchor link
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
 
Peter Somhorst

Peter Somhorst

07/05/2007 22:21:00
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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!
Gewijzigd op 01/01/1970 01:00:00 door Peter Somhorst
 
Klaasjan Boven

Klaasjan Boven

07/05/2007 22:24:00
Quote Anchor link
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 :))
 
Peter Somhorst

Peter Somhorst

07/05/2007 22:26:00
Quote Anchor link
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...
 
Klaasjan Boven

Klaasjan Boven

07/05/2007 22:30:00
Quote Anchor link
SELECT ...
UNION [ALL | DISTINCT] SELECT ...
[UNION [ALL | DISTINCT] SELECT ...]

Komt zo uit jouw link
 
Jason de Ridder

Jason de Ridder

07/05/2007 22:54:00
Quote Anchor 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...
 
Klaasjan Boven

Klaasjan Boven

08/05/2007 08:46:00
Quote Anchor link
@Jason geef eens duidelijk aan wat gedelete moet worden en uit welke tabellen
 
Jason de Ridder

Jason de Ridder

08/05/2007 17:06:00
Quote Anchor link
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?
 
Remco van Arkelen

Remco van Arkelen

08/05/2007 17:52:00
Quote Anchor link
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.
 
Jason de Ridder

Jason de Ridder

08/05/2007 18:52:00
Quote Anchor link
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)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
-- 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;
 



Overzicht Reageren