Bonsoir à toutes et tous.
Il y a juste a côté de mon topics un qui traite des boucles imbriqué mais étant données que j'ai plusieurs résultat de requête stocké dans un tableaux du coup ce topics ne m'as pas apporté de réponse, mes des infos pour la prochaine fois où j'aurais juste un résultat.
Donc à la base j'ai réussi (après beaucoup de galère) à faire une boucle de SELECT sur un tableau de checkbox.
Voici le code où je fais mes SELECT et où ensuite les résultat ce retrouve dans le tableau dont je parle plus bas:
if (sizeof($options) != 0) {
foreach ($options as $valeur){// Requête si des options sont cochées (au moins 1) en utilisant une boucle pour gérer plusieur option
//
$ref_opt = $valeur;
for ($i=0; $i < count($options); ++$i){
$devis_opt[$i] = mysql_query("SELECT prestations.ref_prestation,
prestations.cat_prestation,
prestations.qte_prestation,
prestations.label_prestation,
prestations.tarif_prestation,
categories.id,
categories.label_categorie
FROM prestations
LEFT JOIN categories
ON prestations.cat_prestation = categories.id
WHERE categories.id = '".$opt_cat."' AND prestations.ref_prestation = '".$ref_opt."'");
//echo $result = $valeur.' ';
}
}
Au final je récupère chaque résultat dans un index de mon tableaux :
$devis_opt;
// Son var_dump est = à
array(3) { [0]=> resource(12) of type (mysql result) [1]=> resource(13) of type (mysql result) [2]=> resource(14) of type (mysql result) }
Ensuite plus bas dans mon code je souhaite affiché chaque résultat de chaque option.
Mais c'est là que les ennuis commences.
Voici un des code que j'ai fais :
$count = count($devis_opt);
$i = 0;
$j = 0;
var_dump($devis_opt);
foreach ($devis_opt as $opt){
while($row = mysql_fetch_assoc($opt)){
echo '<tr><br />';
echo '<td>'.$row['ref_prestation'].'</td><br/>';
echo '<td>'.$row['qte_prestation'].'</td><br/>';
echo '<td>'.$row['label_prestation'].'</td><br/>';
echo '<td>'.$row['label_categorie'].'</td><br/>';
echo '<td>'.$row['tarif_prestation'].'</td><br/>';
echo '</tr><br />';
}
}
Mais le problème c'est :
Au lieu de bouclé sur chaque résultat, je sais pas comment je m'y prend, mais ce code boucle sur la dernière options et la répète autant de fois que j'ai récupérer de résultat.
Alors que ce que je souhaite est de bouclé chaque entrée du tableau(donc chaque résultat de requête).
Et grâce au
While affiché le résultat de la requête.
J'ai beau cherché et relire les tutoriels sur les
Array et boucle, je ne saisi pas la bonne synthax que je dois utilisé.
Pourtant au vu des tuto je pars bien.
Le
foreach pour chaque entré du tableau contenant chaque résultat de requête.
Ensuite avec
While, tant que
row est égale à une donné d'un champ de ma table fais tel echo de tel champs.
On est d'accord ?
Donc je comprend pas pourquoi seul le dernier résultat est pris, et pourquoi il est répété.
En résumé je vois pas comment lui dire de faire tous le block While pour chaque entré du tableau
$devis_opt.
Je vous remercie pour les pistes que vous pourrez m'apporter pour que je puisse comprendre et résoudre mon problème.
EDIT 1
Des fois je me demande si c'est pas lors du SELECT où je récupère le même résultat à chaque fois, non ?
Mais en même temps comment le savoir, c'est pas possible.
Sauf si ma syntaxe pour l'affichage est correcte.
Auriez vous des pistes de travail à me donner pour résoudre mon problème ?
Merci.
Bonsoir à toutes et tous.
Il y a juste a côté de mon topics un qui traite des boucles imbriqué mais étant données que j'ai plusieurs résultat de requête stocké dans un tableaux du coup ce topics ne m'as pas apporté de réponse, mes des infos pour la prochaine fois où j'aurais juste un résultat.
Donc à la base j'ai réussi (après beaucoup de galère) à faire une boucle de SELECT sur un tableau de checkbox.
Voici le code où je fais mes SELECT et où ensuite les résultat ce retrouve dans le tableau dont je parle plus bas:
[php]if (sizeof($options) != 0) {
foreach ($options as $valeur){// Requête si des options sont cochées (au moins 1) en utilisant une boucle pour gérer plusieur option
//
$ref_opt = $valeur;
for ($i=0; $i < count($options); ++$i){
$devis_opt[$i] = mysql_query("SELECT prestations.ref_prestation,
prestations.cat_prestation,
prestations.qte_prestation,
prestations.label_prestation,
prestations.tarif_prestation,
categories.id,
categories.label_categorie
FROM prestations
LEFT JOIN categories
ON prestations.cat_prestation = categories.id
WHERE categories.id = '".$opt_cat."' AND prestations.ref_prestation = '".$ref_opt."'");
//echo $result = $valeur.' ';
}
}[/php]
Au final je récupère chaque résultat dans un index de mon tableaux :
[php]$devis_opt;
// Son var_dump est = à
array(3) { [0]=> resource(12) of type (mysql result) [1]=> resource(13) of type (mysql result) [2]=> resource(14) of type (mysql result) } [/php]
Ensuite plus bas dans mon code je souhaite affiché chaque résultat de chaque option.
Mais c'est là que les ennuis commences.
Voici un des code que j'ai fais :
[php]$count = count($devis_opt);
$i = 0;
$j = 0;
var_dump($devis_opt);
foreach ($devis_opt as $opt){
while($row = mysql_fetch_assoc($opt)){
echo '<tr><br />';
echo '<td>'.$row['ref_prestation'].'</td><br/>';
echo '<td>'.$row['qte_prestation'].'</td><br/>';
echo '<td>'.$row['label_prestation'].'</td><br/>';
echo '<td>'.$row['label_categorie'].'</td><br/>';
echo '<td>'.$row['tarif_prestation'].'</td><br/>';
echo '</tr><br />';
}
}[/php]
Mais le problème c'est :
Au lieu de bouclé sur chaque résultat, je sais pas comment je m'y prend, mais ce code boucle sur la dernière options et la répète autant de fois que j'ai récupérer de résultat.
Alors que ce que je souhaite est de bouclé chaque entrée du tableau(donc chaque résultat de requête).
Et grâce au [b]While[/b] affiché le résultat de la requête.
J'ai beau cherché et relire les tutoriels sur les [b]Array[/b] et boucle, je ne saisi pas la bonne synthax que je dois utilisé.
Pourtant au vu des tuto je pars bien.
Le [b]foreach[/b] pour chaque entré du tableau contenant chaque résultat de requête.
Ensuite avec [b]While[/b], tant que [b]row[/b] est égale à une donné d'un champ de ma table fais tel echo de tel champs.
On est d'accord ?
Donc je comprend pas pourquoi seul le dernier résultat est pris, et pourquoi il est répété.
En résumé je vois pas comment lui dire de faire tous le block While pour chaque entré du tableau [b]$devis_opt[/b].
Je vous remercie pour les pistes que vous pourrez m'apporter pour que je puisse comprendre et résoudre mon problème.
[b]EDIT 1[/b]
Des fois je me demande si c'est pas lors du SELECT où je récupère le même résultat à chaque fois, non ?
Mais en même temps comment le savoir, c'est pas possible.
Sauf si ma syntaxe pour l'affichage est correcte.
Auriez vous des pistes de travail à me donner pour résoudre mon problème ?
Merci.