Probleem met MULTI DELETE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dietger marechal

dietger marechal

09/07/2007 00:35:00
Quote Anchor link
ik heb de volgende query :

DELETE producten.id, producten.cat_id, producten.naam, producten.omschrijving, producten.prijs, producten.foto
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat=65

en als ik die dan uitvoer dan krijg ik de volgende error

Unknown table 'id' in MULTI DELETE

Maar ik weet niet welke table id hij bedoeld
 
PHP hulp

PHP hulp

10/01/2025 02:40:30
 
PHP erik

PHP erik

09/07/2007 00:38:00
Quote Anchor link
Het is gewoon "DELETE FROM tabel" en niet "DELETE blahblah FROM tabel". Want je verwijdert een row, en je kunt niet halve rows verwijderen. Op deze manier ziet hij producten.id dus als een tabel.
 
Sneeuwvlok

Sneeuwvlok

09/07/2007 00:38:00
Quote Anchor link
zet is tussen quotes
 
Dietger marechal

dietger marechal

09/07/2007 00:40:00
Quote Anchor link
Dan krijg ik een adere error:

Query :

DELETE
FROM `producten`
JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat=65

Error :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN categorie ON ( producten.cat_id = categorie.id )
WHERE categorie.cat=65' at line 3
 
Dietger marechal

dietger marechal

09/07/2007 00:41:00
Quote Anchor link
sneeuwvlok - Ik ga het een probere

EDIT :

Query :

DELETE `producten.id`, `producten.cat_id`, `producten.naam`, `producten.omschrijving`, `producten.prijs`, `producten.foto`
FROM `producten`
JOIN categorie ON ( `producten.cat_id` = `categorie.id` )
WHERE categorie.cat='65'

Error :

#1103 - Incorrect table name 'producten.id'

Terwijl die duidelijk bestaad
Gewijzigd op 01/01/1970 01:00:00 door dietger marechal
 
PHP erik

PHP erik

09/07/2007 00:43:00
Quote Anchor link
Wat probeer je te bereiken met die JOIN? Wat probeer je überhaupt te bereiken? Het lijkt er op dat je een keer iets moet lezen over foreign keys.
 
Dietger marechal

dietger marechal

09/07/2007 00:50:00
Quote Anchor link
Alles werkt perfect als ik de query gebruik met SELECT ma alleen DELETE wilt hij niet werken.

die JOIN:

Ik heb dus de volgende mysql query

"select id from `categorie` where cat = 2 order by id ASC"

en als resultaat geeft mij dat met phpadmin

id
4
41
42
52
53
54
55
56

"select * from `producten` where cat_id=[AL DIE ID`S] order by cat_id ASC"

En dan krijg je de query:

SELECT categorie.naamcat, producten.naam, producten.prijs FROM `producten`
JOIN categorie ON (producten.cat_id = categorie.id)
WHERE categorie.cat=$catpdfid
ORDER BY categorie.naamcat ASC

die ik altijd gebruik.
Gewijzigd op 01/01/1970 01:00:00 door dietger marechal
 
Jurgen assaasas

Jurgen assaasas

09/07/2007 00:55:00
Quote Anchor link
je kunt ze ook gewoon in een array gooien(de ID's) en dan vervolgens..

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
<?php

$id
= array(4, 41, 42);

foreach($id as $delete_id)
{

$q = "DELETE FROM table WHERE id=".$delete_id." ";
if(mysql_query($q))
{

echo $delete_id.' is succesvol verwijderd<br />';
}

else
}
echo $delete_id.' is niet verwijderd<br />';
}


}

?>
 
Dietger marechal

dietger marechal

09/07/2007 00:57:00
Quote Anchor link
Dat kan ik indeed maar die 2 is eigenlijk $id en dan is mijn resultaat altijd anders.
 
PHP erik

PHP erik

09/07/2007 01:05:00
Quote Anchor link
DELETE FROM producten WHERE cat_id IN (SELECT id FROM categorie WHERE cat = 65)
 
Dietger marechal

dietger marechal

09/07/2007 01:12:00
Quote Anchor link
Die IN die je gebruikt ken ik niet. Maar ook deze query werkt niet

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM producten WHERE cat_id IN ( SELECT id FROM categorie WHERE cat = 65 )
L' at line 1
 
PHP erik

PHP erik

09/07/2007 01:13:00
Quote Anchor link
IN is een heel normale functie. Bovenstaand moet absoluut werken, kijk of je niks fout hebt gespeld ofzo.
 
Dietger marechal

dietger marechal

09/07/2007 01:19:00
Quote Anchor link
K bedankt, Het werkt
 
Dietger marechal

dietger marechal

09/07/2007 01:30:00
Quote Anchor link
Ik heb nog 1 probleempje als ik nu de subcategorien wil zoeken bij een hoofdcategorie dan doe ik

SELECT * FROM categorie WHERE cat IN (SELECT id FROM categorie WHERE id=65)

ok dit werkt maar als ik nu dit doe

DELETE FROM categorie WHERE cat IN (SELECT id FROM categorie WHERE id=65)

Dan krijg ik

#1093 - You can't specify target table 'categorie' for update in FROM clause

Hoe los ik dit dan op. Alvast bedankt !
 
Klaasjan Boven

Klaasjan Boven

09/07/2007 08:52:00
Quote Anchor link
Je kan niet iets deleten wat je in je subquery gebruikt.
Workaround maak een VIEW met alles in categorie
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
CREATE VIEW cat_view AS SELECT * FROM categorie

 
DELETE FROM categorie
WHERE cat IN (SELECT id FROM cat_view WHERE cat=65)

Edit:

typo
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.