probleme de requete

probleme de requete - PHP - Programmation

Marsh Posté le 14-06-2004 à 14:20:24    

Bonjour,
 
J'ai un souci pour une requete : en fait j'ai deux tables du genre "Categorie" et "produits". Donc dans chaque categorie, il y a bien sûr plusieurs produits...
Ce que je veux, c'est en fait pouvoir supprimer une categorie et par conséquent supprimer automatiquement tous les produits de la categorie supprimée.
Et je n'arrive pas a ecrire une telle requete..
 
Merci de votre aide

Reply

Marsh Posté le 14-06-2004 à 14:20:24   

Reply

Marsh Posté le 14-06-2004 à 14:24:17    

Un truc du genre
 
DELETE  
FROM `Categorie`,`Produits`
WHERE Categorie.id_categorie = ".$HTTP_POST_VARS["id_categorie_a_supprimer"]."
AND Categorie.id_categorie = Produits.id_categorie  
 
non ?


Message édité par Rainbow_Efreet le 14-06-2004 à 14:24:58
Reply

Marsh Posté le 14-06-2004 à 15:04:43    

Il me dit que j'ai une erreur de syntaxe, je ne vois pas où?????
 

$requetedel = "DELETE FROM cordagefamille, cordageproduit WHERE cordagefamille.Code = '$saisiecode' AND cordagefamille.Code = cordageproduit.Code";

Reply

Marsh Posté le 14-06-2004 à 15:07:51    

en PHP le caractere d'échappement est l'antislash et le caractere de concatenation est le point.
Je ne sais pas quelle forme a ton $saisiecode ( ni meme d'ou il viens ...) mais si il contient une cote il y aura une erreur
essai :  
\"".$saisiecode."\"
sinon fais le test directement sur la base de test en tappant la requete dans le requetteur et en injectant un valeur directement a ta variable $saisiecode

Reply

Marsh Posté le 14-06-2004 à 15:10:27    

Quelle erreur de snytaxe ? Pas plus de précision dans ton message d'erreur ?
 
Une "bonne" méthode de débuggage de requête foireuse : tu fais un "echo $sql (où $sql serait ta requête) dans ton code.
 
A l'affichage, tu auras donc ta requête avec les valeurs que tu veux lui passer.
 
Tu la copies et la colles dans phpMyadmin (je suppose que tu l'utilise). Les messages d'erreurs sont généralement plus "parlants" par ce biais.

Reply

Marsh Posté le 14-06-2004 à 15:10:30    

et si tu effaces dans tes produits seuls, cela fonctionne ?
Si c'est le cas, tu peux faire
 
"DELETE FROM cordagefamille WHERE cordagefamille.Code = '$saisiecode' ; DELETE FROM cordageproduit WHERE cordageproduit.Code = '$saisiecode';"


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 14-06-2004 à 15:25:12    

voici le mesage d'erreur :
 
là je fais un echo de la requete donc ca a l'air de marcher :  

DELETE FROM cordagefamille, cordageproduit WHERE Code = 93 AND cordagefamille.Code = cordageproduit.code


 
et là c mon erreur :  
 

Something is wrong in your syntax près de ' cordageproduit WHERE Code = 93 AND cordagefamille.Code = corda' à la ligne 1
La suppression n'a pas été effectuée

Reply

Marsh Posté le 14-06-2004 à 15:32:34    

ca marche pas comprend pas :cry:

Reply

Marsh Posté le 14-06-2004 à 15:35:13    

Au fait c'est quoi un cordagefamille ? :)

Reply

Marsh Posté le 14-06-2004 à 15:35:35    

Version de Mysql, en fait ?
 
Parce que avant la 4.0, tu ne peux pas faire de DELETE sur plusieurs tables doc mysql
 
Edit->2 requêtes et voilà


Message édité par deliriumtremens le 14-06-2004 à 15:37:05
Reply

Marsh Posté le 14-06-2004 à 15:35:35   

Reply

Marsh Posté le 14-06-2004 à 15:36:22    

c'est une famille de cordage (en tennis) mais je ne pense pas que ce soit important

Reply

Marsh Posté le 14-06-2004 à 16:11:10    

essaye ça:
"DELETE FROM `cordagefamille` WHERE `cordagefamille.Code` = "'.$saisiecode.'"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed