Delete multitable

Eléphanteau du PHP | 29 Messages

04 janv. 2007, 21:15

bonjour a vous, ca fait quelques temps que je m'aides des post du forum, et je n'intervient pas sur le forum, mais je le trouve plutot assé 'pro' au niveau des sujet abordé...
je suis en train de taffer sur une admin et je suis dans le besoin de suprimmer plusieur enregistrements en même temps sur le forum j'ai trouvé quelques post à ce sujet, mais en essayant je n'ai pas réussit et j'ai en retour un message d'erreur sql...
Ma requette est la suivante :

Code : Tout sélectionner

$query_rs = "DELETE agenda_departements, agenda_villes FROM agenda_departements, agenda_villes WHERE agenda_departements.id='$departement_id', agenda_villes.departement_id='$departement_id'" ;
quand je fait un DELETE simple cela fonction, mais là j'ai une erreur que je n'arrive pas a résoudre tout seul, si quelqu'un connais le trick cela m'aiderai beaucoup
merci a vous pour votre attention :wink:
et bonne à nez... :oops:

ViPHP
ViPHP | 1961 Messages

04 janv. 2007, 21:17

Bonjour,

Le texte exact de l'erreur nous aiderait à t'aider. Tu ne penses pas ???

EDIT :

La syntaxe de la requête n'est pas correcte.
DELETE FROM tables, table1 WHERE .....
Pas de nom(s) de table(s) entre le "DELETE" et le "FROM"
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 29 Messages

05 janv. 2007, 01:22

Bonjour,
Le texte exact de l'erreur nous aiderait à t'aider. Tu ne penses pas ???
euh si dsl

msg erreur :

Code : Tout sélectionner

Erreur de syntaxe près de ' agenda_villes.departement_id='3'' à la ligne 1
par contre j'ai essayé différentes syntaxe et aucunes ne fonctionne...
j'ai enlevé aussi les nom des tables entre DELETE et FROM, mais rien non plus...
merci a+

ViPHP
ViPHP | 1961 Messages

05 janv. 2007, 01:27

Re,

Tu devrais regarder les syntaxes SQL
agenda_departements.id='$departement_id', agenda_villes.departement_id='$departement_id'"
C'est pas une virgule, mais un opérateur qui doit figurer dans la clause "WHERE"
agenda_departements.id='$departement_id' AND  agenda_villes.departement_id='$departement_id'"
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 29 Messages

05 janv. 2007, 01:41

YEs tout à fait je m'en suis aussi rendu compte...
mais toujours rien , j'ai consulté la doc, mais j'ai pas réussi à mettre en forme...

pas toujours simple :cry:
[EDIT]ma requette actuelle est :

Code : Tout sélectionner

$query_rs = "DELETE FROM agenda_departements AS t1, agenda_villes AS t2 WHERE t1.id='$departement_id'AND t2.departement_id='$departement_id'" ;
[/EDIT]
a+

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 janv. 2007, 02:15

  • Les AS sont facultatifs pour les alias de tables.
  • Les variables sont plus jolies, extraites de la chaîne. ;)
$query_rs = "DELETE FROM agenda_departements t1, agenda_villes t2 WHERE t1.id=".$departement_id." AND t2.departement_id=".$departement_id; 

Eléphanteau du PHP | 29 Messages

05 janv. 2007, 02:19

merci a toi pour ton aide, mais j'ai toujour mon message d'erreur qui me dit :

Code : Tout sélectionner

Erreur de syntaxe près de 'WHERE t1.id=3 AND t2.departement_id=3' à la ligne 1
je devien fou,
en fait hier ca fonctionnais mais en 2 fois en fait j'ai mis les requette de DELETE l'une après l'autre et pas de problèmes, là je voulais faire plus propre...mais c'est à s'arracher les cheveux... :wink: [/code]

ViPHP
ViPHP | 1961 Messages

05 janv. 2007, 02:28

Essaie ceci
$query_rs = "DELETE FROM agenda_departements t1, agenda_villes t2 USING t1, t2 WHERE t1.id=".$departement_id." AND t2.departement_id=t1.id; 
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 janv. 2007, 02:28

En farfouillant la doc, j'ai cru comprendre qu'il fallait une jointure entre les tables... :-k

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 janv. 2007, 02:29

Joli simultané, Ajoloca. =D>
J'ai l'impression qu'on en arrive à la même conclusion... :idea:

ViPHP
ViPHP | 1961 Messages

05 janv. 2007, 02:32

A première vue, ça doit être ça.
On attend la réponse pour en savoir plus.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 29 Messages

05 janv. 2007, 02:32

hello, MErci a vous 2 pour votre aide, mais toujours rien,
@Ajoloca : là ça me dit que ma base.t1 n'existe pas..!!!
@ je jette un oeil... :wink:
Merci de votre patience....
:evil:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

05 janv. 2007, 02:35

À tout hasard, vérifie très attentivement tes noms de tables, de champs, de variables.
Et indique-nous l'exact message d'erreur qui t'est affiché.

ViPHP
ViPHP | 1961 Messages

05 janv. 2007, 02:36

Pour l'instant essaie comme ça, on verra après pour les alias
$query_rs = "DELETE FROM agenda_departements , agenda_villes  USING agenda_departements , agenda_villes WHERE agenda_departements.id=".$departement_id." AND agenda_villes.departement_id=agenda_departements.id;
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 29 Messages

05 janv. 2007, 02:37

ahhhhhhhhhhhhhhh
Enfin!!!! :twisted: :twisted: :twisted:
c'est pas trop tôt j'ai enfin réussit !!!!
merci a vous deux pour votre patience remarquable :wink:
en fait j'ai utilisé cette syntaxte :

Code : Tout sélectionner

"DELETE FROM agenda_departements , agenda_villes USING agenda_departements, agenda_villes WHERE agenda_departements.id=".$departement_id." AND agenda_villes.departement_id=".$departement_id;
plus d'alias ni de jointure,....bref je comprend pas pourquoi ça fonctionnais pas, mais bon mieux vaux tard que jammais
encore merci et @ bientot
[edit]@Ajoloca yes, c'est que je me suis dit apres ton exemple avec 'USING'
[/edit]
Modifié en dernier par dredtrake le 05 janv. 2007, 02:39, modifié 1 fois.