Bonjour

Je n'arrive pas à faire passer une condition d'update en php alors que la requete sql depuis phpMyadmin passe.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
# Requete SQL
update module 
inner join formamod on module.codeMod = formamod.ModuleID 
inner join formamet on formamod.FormametID = formamet.CodeFormMet
set `module`.Com="1"
Where (`formamet`.`Type` ="foo")
AND formamod.ModuleID
IN (
SELECT ModuleID
FROM formamod
GROUP BY ModuleID
HAVING COUNT(ModuleID)>1)
la traduction en php donne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
$bdd->beginTransaction();
 
$bdd->query('update module inner join formamod on module.codeMod = formamod.ModuleID inner join formamet on formamod.FormametID = formamet.CodeFormMet set module.Com="1" Where ((formamet.Type="foo") AND formamod.ModuleID IN (SELECT ModuleID FROM formamod GROUP BY ModuleID HAVING COUNT(ModuleID) > 1 ))' );
 
$bdd->commit();
Le script fonctionne jusqu'à la première condition. Le IN (SELECT n'a pas l'air de passer.

Pour être plus clair je ne veux que mettre à jour ModuleID.Com que lorsque ModuleID est présent plus d'une fois dans la table formamod.

Si vous aviez une piste, je serais ravi. Merci pour votre aide.

@+

Nopt