Problème requête imbriquée
Résolu/Fermé
ssx32
Messages postés
10
Date d'inscription
mercredi 18 septembre 2013
Statut
Membre
Dernière intervention
9 décembre 2013
-
9 déc. 2013 à 09:21
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 9 déc. 2013 à 14:03
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 - 9 déc. 2013 à 14:03
A voir également:
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de pomme mais pas de pomme de terre ?
- Impossible de supprimer une page word - Guide
- Word numéro de page 1/2 - Guide
- Traduire une page web - Guide
- Roxane cherche des informations pour écrire un rapport sur la jeunesse. avec un moteur de recherche généraliste, elle souhaite limiter les résultats de sa recherche aux pages de l’organisation internationale de la francophonie. quelle requête doit-elle taper dans le champ de recherche ? - Forum Réseaux sociaux
- Recherche de musique - Guide
3 réponses
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 déc. 2013 à 09:32
9 déc. 2013 à 09:32
Salut,
Déjà, à la suite de tes mysql_query, tu devrais rajouter un die :
S'il y a une erreur dans ta requête, ça te donnera des infos.
Ce que tu peux faire aussi, c'est afficher ton $sql pour être certain que la requête a été bien construite.
Déjà, à la suite de tes mysql_query, tu devrais rajouter un die :
$s = mysql_query($sql) or die(mysql_error());
S'il y a une erreur dans ta requête, ça te donnera des infos.
Ce que tu peux faire aussi, c'est afficher ton $sql pour être certain que la requête a été bien construite.
ssx32
Messages postés
10
Date d'inscription
mercredi 18 septembre 2013
Statut
Membre
Dernière intervention
9 décembre 2013
9 déc. 2013 à 09:47
9 déc. 2013 à 09:47
merci ThEBiShOp pour ta réponse rapide,
séparément mes requêtes fonctionnent mais quand elles sont imbriquées ça plante.
avec le mysql_error() ça me dit que j'ai une erreur de syntaxe après le IN
séparément mes requêtes fonctionnent mais quand elles sont imbriquées ça plante.
avec le mysql_error() ça me dit que j'ai une erreur de syntaxe après le IN
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 déc. 2013 à 09:50
9 déc. 2013 à 09:50
Fais un echo $sql; avant ton mysql_query, je parie que ton erreur va te sauter aux yeux.
ssx32
Messages postés
10
Date d'inscription
mercredi 18 septembre 2013
Statut
Membre
Dernière intervention
9 décembre 2013
9 déc. 2013 à 10:12
9 déc. 2013 à 10:12
quand j'affiche la requête ce qui cloche c'est que après IN les résultats doivent être séparé par "," donc j'ai fait :
mais ça marche toujours pas :s
while ($row=mysql_fetch_array($rep)){ $repti=$repti .$row[nom]; $repti = $repti.",";
mais ça marche toujours pas :s
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 déc. 2013 à 10:14
9 déc. 2013 à 10:14
Et qu'est ce qui cloche ce coup ci ? :)
ssx32
Messages postés
10
Date d'inscription
mercredi 18 septembre 2013
Statut
Membre
Dernière intervention
9 décembre 2013
9 déc. 2013 à 10:26
9 déc. 2013 à 10:26
c'est encore la syntaxe du IN
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 déc. 2013 à 10:27
9 déc. 2013 à 10:27
oui
ssx32
Messages postés
10
Date d'inscription
mercredi 18 septembre 2013
Statut
Membre
Dernière intervention
9 décembre 2013
9 déc. 2013 à 13:57
9 déc. 2013 à 13:57
j'ai trouvé la solution je post si quelqu'un en aura besoin
la clause in doit avoir cette syntaxe: IN ('var1','var2','var3') et mon code affiche ( var1,var2,var3,)
pour y remedier :
la clause in doit avoir cette syntaxe: IN ('var1','var2','var3') et mon code affiche ( var1,var2,var3,)
pour y remedier :
$c = " AND 1=1"; if (!EMPTY($_POST['pays'])) { $rep=mysql_query("SELECT nom FROM client WHERE pays= '".$_POST['pays']."'"); while ($row=mysql_fetch_array($rep)){ $repti=$repti." ' " . $row[nom]; //ajouter le separateur " ' " avant la variable $repti = $repti." '," ; //ajouter le separateur " ' , " aprés la variable } $go=substr($repti, 0, -1); // enlever la dérniere virgule $c = $c . " AND liste_commande.client IN (".$go.")"; } $sql = "SELECT DISTINCT liste_commande.n_of,liste_commande.id,liste_commande.date,liste_commande.client,liste_commande.n_commande_client,liste_commande.reference_produit,liste_commande.designation,liste_commande.reference_client,liste_commande.delai_demande,liste_commande.site_concerne,liste_commande.quantite WHERE ".$c." ORDER BY liste_commande.date "; $s = mysql_query($sql); while ($r = mysql_fetch_array($s)){ // affichage des données }
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
9 déc. 2013 à 14:03
9 déc. 2013 à 14:03
C'est une des possibilités, sinon tu peux utiliser la fonction implode