Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Foreach la seconda variabile non viene stampata correttamnte

    Ciao a tutti, il mio probelma è questo:

    Ho due array

    $auth2=(Bianchi D.*, Verdi C. => Rossi F., Gialli B.*)
    $code=(1-1 => 1.2)

    e vorrei riuscire ad avere una visualizzazione del genere:

    Bianchi D. 1.1
    Verdi C. 1.1
    Rossi F. 1.2
    Gialli B. 1.2


    codice:
    <?php
    $sql="SELECT * FROM xxx ORDER BY sessione, autori";
    $dati = mysqli_query($connessione, $sql);
    $i = 0;
    while ($array=mysqli_fetch_array($dati))
    {
    $tagli2= array(", ");
    $auth2 = str_replace($tagli2, ",", $array["autori"]);
    $code=$array["code"];
    $tagli= array("*");
    $auth = str_replace($tagli, "", $auth2);
    $indirizzi[$i++]=$auth;
    }
    $comma_separated = implode(" , ", ($indirizzi));
    $separatore=",";
    $suddivisa=explode($separatore, $comma_separated);
    foreach ($suddivisa as $value){
        echo $value;
        echo $code;
        echo "<br>";}
    
    ?>
    cosi mi stampa l'elenco corretto ma un valore $code uguale per tutti
    Bianchi D. 1.2
    Verdi C. 1.2
    Rossi F. 1.2
    Gialli B. 1.2

    Dove sbaglio?

    Grazie in anticipo

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Secondo me il tuo problema non è solo il foreach(), vedo codice molto confusionario e uso di array a sproposito.
    Per esempio $tagli e $tagli2 non hanno ragione di essere array, potrebbero benissimo essere delle stringhe semplici visto che contengono una sola entry, ti dirò di più, non servono proprio neanche come variabili stringa visto che il loro valore è sempre lo stesso, potresti mettere ", " e "*" direttamente dentro str_replace() come primo parametro, a che serve passargli una variabile?
    Hai le idee molto confuse su PHP e forse la programmazione in genere.

  3. #3
    ho semplificato il codice perche' in realtà $tagli1 e $tagli2 non contengono una sola entry come dici te, ma pensavo fosse inutile elencarle qua...

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    il tuo foreach è fuori dal while, quindi $code è sempre uguale all'ultimo valore che gli hai assegnato nel while

  5. #5
    Quote Originariamente inviata da clasku Visualizza il messaggio
    il tuo foreach è fuori dal while, quindi $code è sempre uguale all'ultimo valore che gli hai assegnato nel while
    Ti ringrazio per la risposta... hai ragione, ma se lo inserisco all'interno del foreach ottengo:

    Bianchi D. 1.1
    Verdi C. 1.1

    Bianchi D. 1.2
    Verdi C. 1.2
    Rossi F. 1.2
    Gialli B. 1.2

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 © 2024 vBulletin Solutions, Inc. All rights reserved.