requete qui supprime dans plusieurs tables

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete qui supprime dans plusieurs tables

par Henri » 23 juin 2006, 17:49

Ta requête ne peut pas supprimer dans deux tables. Il faudrait un

Code : Tout sélectionner

delete from produit , posseder ...
Pour l'utilisation des jointures dans un delete, voir ici http://www.samspublishing.com/articles/ ... um=10&rl=1

Mais pour parler franchement, supprimer des enregistrements dans deux tables avec en plus une jointure externe, c'est prendre des risques assez considérables au niveau du développement, de la mise au point et des tests. C'est tellement plus simple de faire deux delete l'un à la suite de l'autre.

A vérifier : je ne suis pas sûr du tout qu'un delete sur plusieurs tables soit dans la norme SQL. A mon avis, il s'agit de jargon MySQL

par zeus » 23 juin 2006, 16:14

Dans la doc, j'ai trouvé ces 2 syntaxes :
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id

ou :

DELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id

par azerty53 » 23 juin 2006, 15:27

merci zeus d'avoir tenté mais ca change rien. en attendant j'avais tenté ca mais :cry: :cry: :cry: :cry: ca marche tjrs pas :(:(

EDIT: j'ai placé un mysql_error et il me dit que j'ai un pb de jointure

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 posseder ON posseder.pro_id=produit.pro_id WHERE pro_id=171

par zeus » 23 juin 2006, 14:40

Déjà, ta jointure est bancale. Ensuite, je ne sais pas si ça fonctionne :-k

essaye ça :
$sql=mysql_query('DELETE FROM produit JOIN posseder ON posseder.pro_id=produit.pro_id WHERE pro_id='.$id );

requete qui supprime dans plusieurs tables

par azerty53 » 23 juin 2006, 13:50

Bonjour a la communauté

j'ai une requete qui doit supprimer dans 2 tables
$sql=mysql_query('DELETE FROM produit ON posseder INNER JOIN posseder.pro_id=produit.pro_id WHERE pro_id='.$id );
le $id est bon j'obtiens bien la valeur quand je fais un echo.

en fait j'ai une table produit

PRODUIT
pro_id
pro_lib
pro_prix

POSSEDER
pro_id
cat_id

valeur

mais il ne veut pas me supprimer ce que je veux.

il fait comme si il supprimait mais il ne m'enleve rien. et je n'ai pas de message d'erreur c'est que ma requete doit pas etre si fausse que ca :):)

si quelqu'un pouvait m'eclairer ;)

Merci