Bonjour à tous...
Avant mon code était rempli de mysql_query, mysql_fetch_array,
mysql_fetch_assoc...et de partout on me disait c'est pas bien, il faut utiliser PDO...
J'ai donc repris toutes les instructions pour les remplacer par du code plus "moderne", sauf que pour certaines instructions, je ne sais pas comment faire...
Ainsi j'ai (j'avais) sur une page dans un même formulaire une série de select inclus dans une boucle for alimentés par une même table.
Pour alimenter le deuxième select j'avais utilisé ça en fin de boucle :
mysql_data_seek($requete,0);
J'ai bien trouvé ça sur un autre forum pour remplacer cette lourdeur de code :
$requete = $bdd->query('SELECT * FROM menu_aliments ORDER by aliment_nom');
$row = $requete->fetch(PDO::FETCH_ASSOC);
...
while ($row = $requete->fetch(PDO::ASSOC)) {
... et en fin de boucle for :
$requete->closeCursor();
Mais ça n'a pas réglé mon problème, maintenant, un seul select apparait qui plus est vide de contenu !
Merci d'avance pour vos lumières !
Je viens poster la réponse à mon problème, des fois que cela puisse servir
à quelqu'un moins doué que moi !
En début de page :
// Requête SQL - Lecture des Aliments :
$requete = $bdd->query('SELECT * FROM menu_aliments ORDER by aliment_nom');
// on stocke le résultat de la requête dans un Array
$reponse = $requete->fetchAll();
A l'endroit des select :
<?php
for ($i=1; $i <=10; $i++) { ?>
<tr>
<td>
<?php echo $i; ?>
</td>
<td>
<select name="<?php echo 'ingredient' . $i; ?>" id="ingredient">
<option value=""></option>
<?php
foreach($reponse as $valeur) {
echo '<option value="'.$valeur['aliment_id'].'">'.$valeur['aliment_nom'].'</option>';
} ?>
</select>
</td>
</tr>
<?php $requete->closeCursor();
}
?>
Et tous les select de la page peuvent être alimentés par la même table !
(Merci à jordane45)