Problema Doppio Ciclo: For & While

Salve!

ho un problema con un doppio ciclo. in pratica devo inserire delle

ricette e per ognuna di questa devo inserire gli ingredienti in una

tabella a parte, in cui sono indicati tutti gli ingredienti.

quindi: seleziono tutti gli ingredienti ed inizio il ciclo for per

visualizzare le select il cui numeo arriva tramite una sessione

($_SESSION['numingr']. all'interno di questo for, inserisco una casella

di testo dove si inserisce la quantità ed una select. a questo punto

devo far in modo di inserire all'interno di questa select tutti gli

ingredienti presenti nella tabella Ingredienti. faccio partire il ciclo

while in cui creo l'arrai $row in cui memorizzo tutti gli id ed il nome

degli ingredienti. ora nel scrivo tutti gli ingredienti all'interno del

select attraverso le option.

l'errore sta nel fatto che se inserisco un solo ingrediente tutto

funziona correttamente, mentre se ne inserisco due o più, nel primo

select la lista compare senza problemi, mentre i successibi select

risultano vuoti. da residui di conoscenze di programmazione, credo che

l'errore stia nella posizione delle option, ma nonostante abbia provato

a pensare e a provare a spostare il codice qua e la, non sono riuscito

a risolverlo...

mi potete aiutare?

grazie!

ecco qui di seguito la parte di codice interessata...

<?
        //Inserire Codice Salvataggio Ingredienti
        //Perlievo Informazioni Ingredienti
        $queryingredienti="SELECT * FROM Ingredienti";
        $resultingredienti=mysql_query($queryingredienti)or
die(mysql_error());

        //Inizio For Inserimento Quantità/Ingredienti
        for($i=0;$i<$_SESSION['numingr'];$i=$i+1){
?>
          <input type="text" name="quantita<? print("$i"); ?>" />  <select
name="ingrediente<? print("$i"); ?>">
<?
        //Creazione Array $row
                while($row=mysql_fetch_array($resultingredienti)){
                        $idingrediente=$row[IDIngrediente];
                        $ingrediente=$row[Ingrediente];
?>
                        <option value="<? print("$idingrediente"); ?>"><?
print("$ingrediente"); ?></option>
<?
        //Fine While
                }
?>
inviato 10 anni fa
bobobob
X 0 X

Vista così manca la chiusura della select.

risposto 10 anni fa
LonelyWolf
X 0 X
Vista così manca la chiusura della select.

inoltre non puoi effettuare più volte la fetch dei risultati (il ciclo while) se non resetti il result set. Appena dopo la fine del ciclo while devi mettere questa istruzione:

mysql_data_seek($resultingredienti, 0);

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Vista così manca la chiusura della select.

si...ho solo sbagliato a copiare...dopo c'era...

ora provo a fare come ha detto gianni...poi vi faccio sapere...

risposto 10 anni fa
bobobob
X 0 X
mysql_data_seek($resultingredienti, 0);

ottimo...così funziona....

risposto 10 anni fa
bobobob
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda