requête sql+php: problème de syntaxe - SQL/NoSQL - Programmation
Marsh Posté le 01-02-2007 à 13:33:09
Je ne comprends pas très très bien ton problème mais ne te serait-il pas possible de stocker dans une array, le résultat des query obtenues progressivement (via un fetch) ?
Ce n'est pas la solution la plus élégante surtout si tu as un très grand nombre de parcours de boucle, mais je présume que tu ne dois pas offrir ton site en 50 langues
Marsh Posté le 01-02-2007 à 14:34:55
mon pb c'est que je voudrais faire une boucle avec des unions de requêtes:
for ($i = 0; $i < count($lang); $i++){
$rqt=mysql_query("select ...." );
$ma_rqt = $rqt union mysql_query("select ....where lg=$lang[$i]" );
$rqt=$ma_rqt
}
J'ai juste un problème de syntaxe..
Cependant, ce que tu dis m'a l'air super ms je sais pas comment le faire ("via un fecth" )..je m'y connais pas trop...
Marsh Posté le 01-02-2007 à 12:38:05
Voici mon problème..
J'ai créé des filtres sur mon site en php. Donc j'ai des radioboutons et selon le choix de l'utilisateur j'ai une requête sql qui est différente.
Jusque là ça va...je voudrais rajouter des filtres sur les langues, j'ai donc une liste de drapeaux avec des checkbox et selon le choix fait j'arrive à réupérer les valeurs des drapeaux qui ont été cochés.
Maintenant j'en viens à mon problème: la requête doit changer en fonction des drapeaux sélectionnés, donc j'ai ce code:
if ($language!="" ) {
for ($i = 0; $i < count($language); $i++)
{
/************* je récupère les noms des langues sélectionnées **************/
$query54=mysql_query("select distinct ISO,language_name from Languages where ISO='$language[$i]'" );
while($query54 and $data = mysql_fetch_array($query54)){
$lg_name=$data["language_name"];
$query51= mysql_query("select distinct customer_name,Query_type,Doc_name, Query_text from Projects P inner join Queries Q on (P.Project_name=Q.Project_name) where Q.Language_name='$lg_name'" );
}
}
}
$query51 est la requête qui sélectionne les champs correspondant à 1 language et comme c'est ds une boucle ça ne prends que le dernier language.
Je dois donc faire un truc du genre: $query51=$query51 union (mysql_query("select distinct customer_name,Query_type,Doc_name, Query_text from Projects P inner join Queries Q on (P.Project_name=Q.Project_name) where Q.Language_name='$lg_name'" ));
Sauf que c'est pas la bonne syntaxe!!
Donc si vous pensez que je me trompe de voie ou que vous connaissez la vraie syntaxe ça m'aiderai!!
Merci
Message édité par acorsa le 01-02-2007 à 14:35:30