Allora.... credo sia il caso di fare un paio di considerazioni.
Una sulla tua domanda, una sul possibile motivo per il quale ottieni dallo script un comportamento anomalo.
Il while analizza rigo per rigo l'array che tu crei con il mysql_fetch_assoc().
Quindi il suo comportamento nello script è valido.
L'istruzione che prevede l'interrogazione dal DB e l'estrapolazione dei vari dati risultanti funziona a dovere, restituendo un array associativo.
Il ciclo di WHILE non fa altro che leggere un rigo di array per ciclo (fintanto che l'espressione passata come argomento sia TRUE).
Nello stesso argomento, però, associ la funzione di creazione dell'array associativo ad una variabile ($row), che risulterà essere un array associativo proprio perché tu glielo imponi.
FOREACH legge (rigo per rigo come il while) l'array estraendone i parametri.
L'errore che fai nel secondo ciclo è quello di avere un array a più dimensioni e andare ad associare una sola variabile.
Mi spiego con due righe di codice:
Con questo metodo, while e foreach sono sostanzialmente intercambiabili (per un array come questo).Codice PHP:
// tuo metodo: IMPRECISO
foreach ($row as $value) {
// ........
}
// metodo CORETTO
foreach ($row as $id_film => $label_film) {
// ........
}
Spero di essere stato chiaro.
![]()