petit probleme pour effectuer une requete

Invité
Invité n'ayant pas de compte PHPfrance

19 juin 2006, 22:55

Salut,

J'ai un petit probleme avec un tableau et une requete
voila le code


J'ai dans le tableau $iddep
3,4,5 par ex

et je voudrais pour chaque valeur effecuter une requete

Code : Tout sélectionner

$query4=mysql_query("select dep from departement where id=$iddep");$res4 =mysql_fetch_array($query4); $dep_name=$res4[0];
Ca c'est le code que j'ai
Je pense qu'il faut utiliser for each mais je ne vois pas trop comment
de plus est ce que cela fonctionne si je n'ai qu'une valeur dans le tableau ??

Merci de votre aide

Mammouth du PHP | 19672 Messages

19 juin 2006, 23:04

Avec un for() ou un foreach(), ce serait effectivement possible, mais les requêtes en boucle, ce n'est pas très optimal : selon le type d'info que tu veux récupérer, il serait peut-être plus approprié de construire dynamiquement une seule requête pour tous les éléments de ton tableau : essaye donc d'expliquer ce que tu veux obtenir...

Pour le foreach(), regarde donc dans la doc, elle est là pour ça aussi
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

19 juin 2006, 23:11

la variable comprenant 3,4,5

Ma requete

Code : Tout sélectionner

$query4=mysql_query("select dep from departement where id=$iddep");
Me permet de recuperer le nom du departement par rapport a $iddep

pour exemple si $iddep = 75 je fais ma requete
$query4=mysql_query("select dep from departement where id=$iddep");
puis

Code : Tout sélectionner

$res4 =mysql_fetch_array($query4); $dep_name=$res4[0]; echo $dep_name; // me donne Paris
Mais je voudrais faire cela pour toutes les valeurs du tableau

Merci pour ton aide[/code]

Invité
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 10:03

J'ai avance un peu sur mon probleme et voici ce que j'ai fait

Code : Tout sélectionner

$champs = explode (",", $iddep); // ou $iddep est un tableau qui comprend par exemple 1,2,3 foreach($champs as $rubrique) //On parcourt la liste des rubriques { $query4=mysql_query("select dep from departement where id=$rubrique"); $res4 =mysql_fetch_array($query4); $dep_name = print_r($res4[0]); }
J'ai bien d'affiche
AinAisneAllier
Je voudrais mettre ce resultat dans une variable mais si je fais un echo de $dep_name j'ai Ain uniquement

Merci par avance

Eléphant du PHP | 332 Messages

20 juin 2006, 10:17

Je ne comprend pas très bien le coup de la boucle sur la requête.

D'après ce que je lis, tu as $iddep = '1, 2, 3' puisque tu fais un explode sur la virgule
Et donc, avec ça, tu es prêt pour faire une seule requête en utilisant la syntaxe SQL : colonne IN tableau
$iddep = "(".$iddep.")"; // $iddep = (1, 2, 3)
$query4 = mysql_query("select dep from departement where id in $iddep");    
$res4  = mysql_fetch_array($query4); 
Et c'est à partir de là que tu peux commencer à faire un foreach ou une boucle for sur ton $res4.

Eventuellement, si tu as besoin de l'id dans ta boucle, tu modifies ta requête pour que cela donne
$query4 = mysql_query("select id, dep from departement where id in $iddep");