Page 1 sur 1
variable écrasée à chaque tour de boucle
Posté : 14 juin 2011, 17:11
par swanny
Bonjour,
J'ai un soucis de variable. J'ai écris une boucle dans laquelle je veux récupérer les identifiant de mes plaques ($plateid). Le probléme c'est qu'en écrivant ça, ma variable est écrasée à chaque fois. Hors je veux pouvoir m'en resservir plus loin pour faire une requéte avec tout les identifiants incriminés. Mais je ne vois pas comment faire. Quelqu'un pourrait-il m'aider?
Voici ma boucle :
Code : Tout sélectionner
$sql="select * FROM t_plate where project='$projectid';";
$rs=pg_exec($idc,$sql);
$cpt=0;
while ($lgr=pg_fetch_assoc($rs))
{
$plateid =$lgr['plate_id'];
print("$plateid<br>");
$cpt++;
}
Merci d'avance

Re: variable écrasée à chaque tour de boucle
Posté : 14 juin 2011, 18:25
par Ryle
Au lieu de mettre tes valeurs dans une variable, il faudrait les mettre dans un tableau. Tu pourrais ainsi ajouter tes plaque dans ton tableau à chaque itération et récupérer un tableau rempli en sortant du while
$plateTab = array();
while ($lgr=pg_fetch_assoc($rs)) {
$plateid =$lgr['plate_id'];
print("$plateid<br>");
$plateTab[] = $plateid;
$cpt++;
}
print_r($plateTab);
Re: variable écrasée à chaque tour de boucle
Posté : 14 juin 2011, 23:26
par devlop78
Ou plutot simple
$lgr=pg_fetch_all($rs)
Re: variable écrasée à chaque tour de boucle
Posté : 15 juin 2011, 10:42
par Invité
J'ai tout mis dans un tableau, effectivement je récupére tout mes identifiants. Merci beaucoup
Mais j'ai un autre probléme. J'avais fait une requête qui me permettais de récupérer un identifiant de plaque afin d'afficher plus tard toutes les informations sur celle-ci. ça marche mais en ne récupérant que la derniére plaque (ce qui est normal puisque j'ai construit ma requête avec $plateid, il ne peut donc récupérer que la derniére valeur de cette variable). Maintenant je voudrais récupérer toutes les valeurs de mon tableau pour faire la même chose. Je ne vais pas remplacer $plateid par $plateTab ça ne marchera pas, mais je ne vois pas trop comment faire. Il me faut plusieurs requêtes? Ou je peux tout faire dans la même ?
Voilà ma requête de départ :
Code : Tout sélectionner
$sql="select * FROM t_result where plate_id=$plateid ORDER BY result_id;";
$rs=pg_exec($idc,$sql);
Re: variable écrasée à chaque tour de boucle
Posté : 15 juin 2011, 11:18
par moogli
salut,
(j'avoue j'ai pas tout relue)
solution 1 : si c'est toute la table, vire juste la condition sur le plate_id (donc le where au final)
solution 2 : tu ne veux que celle dans le tableau $plateTab, dans ce cas tu va pouvoir tuiliser le IN de SQL
$sql = 'select * FROM t_result where plate_id in ('. inplode(',',$plateTab).' ) ORDER BY result_id;';
edit : j'ai oublié un p'tit lien vers de la doc

=>
http://sqlpro.developpez.com/cours/sqla ... es/#L1.2.1
@+
Re: variable écrasée à chaque tour de boucle
Posté : 15 juin 2011, 14:54
par Invité
J'ai utilisé la 2éme solution vu que mes identifiant vont changer à chaque demande de l'utilisateur. Merci beaucoup pour l'aide et pour la doc

Re: variable écrasée à chaque tour de boucle
Posté : 15 juin 2011, 15:00
par moogli
de rien
(clique sur résolu, si c'est la cas, ça pourra p'tet aider quelqu'un d'autre

)
@+
Re: variable écrasée à chaque tour de boucle
Posté : 15 juin 2011, 15:13
par swanny
A oui, par contre la fonction c'est "implode" avec un "m" et non un "n"^^ Merci encore
