Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Struttura foreach

  1. #1

    Struttura foreach

    Ciao a tutti.

    Codice PHP:
    foreach($prod_b as $b) {
    $query_sql mysql_query("SELECT costo FROM tabella WHERE id= $b") or die (mysql_error());
    while(
    $row mysql_fetch_array($query_sql)){
    $costob $row['costo'];} } 
    Io tramite questa struttura foreach controllo il prezzo di 3 prodotti dato che prod_b è un array...però quando posto in output $costob mi viene solo l'ultimo valore...
    Come si fa ad ottenere 3 distinti oppure la somma di tutti e 3...grazie

  2. #2
    Ciao,
    se posti il contenuto dell'array $prod_b e i contenuti della tabella, probabilmente si riuscirà a capire l'errore.

    Altrimenti fai una prova, ad occhio così:

    codice:
    foreach($prod_b as $b) {
    $costob = "questo prodotto non è presente nel database.\n";
    $query_sql = mysql_query("SELECT costo FROM tabella WHERE id=$b LIMIT 1") or die (mysql_error()); 
    while($row = mysql_fetch_array($query_sql)){ 
    $costob = $row['costo'];} 
    echo "Costo prodotto con id $b >>> $costob
    \n";
    }

  3. #3

    Re: Struttura foreach

    Originariamente inviato da damy11
    Ciao a tutti.

    Codice PHP:
    foreach($prod_b as $b) {
    $query_sql mysql_query("SELECT costo FROM tabella WHERE id= $b") or die (mysql_error());
    while(
    $row mysql_fetch_array($query_sql)){
    $costob $row['costo'];} } 
    Io tramite questa struttura foreach controllo il prezzo di 3 prodotti dato che prod_b è un array...però quando posto in output $costob mi viene solo l'ultimo valore...
    Come si fa ad ottenere 3 distinti oppure la somma di tutti e 3...grazie
    Il problema e' che all'interno del ciclo while, tu assegni il valore estratto da DB ogni volta alla stessa variabile, quindi il suo contenuto viene sovrascritto ad ogni ciclo ed al termine ovviamente rimane solo l'ultimo.

    Se vuoi registrarli tutti invece di una variabile semplice usa un array, se vuoi fare la somma... beh sommali

  4. #4
    Vero...Grazie mille ho risolto

  5. #5
    Scusa credevo che il problema era risolto,ma ho sbagliato...scusa come devo scrivere l'array?

    Ho fatto così,ma continua ad essere sovrascritto il valore e quindi mi viene un array con gli stessi valori.

    while($row = mysql_fetch_array($query_sql)){
    $costob = array("$row[costo]", "$row[costo]", "$row[costo]"); }

  6. #6
    No, non c'e' nessuna logica nel tuo codice: ad ogni ciclo crei un array nel quale metti 3 volte lo stesso valore, quindi terminerai con la variabile $costob che conterra' un array i cui elementi sono 3 copie dell'ultimo costo estratto.

    Quello che devi fare e' creare una variabile come array PRIMA del ciclo, e all'interno del ciclo - ad ogni iterazione - aggiungere un valore a quell'array.

  7. #7
    Grazie per la pazienza...adesso funziona davvero correttamente


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.