• User Attivo

    Come ti dicevo stampandolo così ogni volta mi ripete il nome e indirizzo e poi il relativo titolo e autore[PHP] nome1
    indirizzo1

    titolo1_cod1

    nome1
    indirizzo1

    titolo2_cod1

    nome1
    indirizzo1

    titolo1_cod2

    nome2
    indirizzo2

    titolo2_cod2[/PHP]

    Invece io vorrei che ad ogni nome ci fosse la lista ....


  • User Attivo

    Allora forse ti conviene fare in questo modo, fai la query sulla prima tabella, mentre scorri i record, prima stampi l'indirizzo, il nome e il codice, e appena dopo esegui la query sulla seconda tabella relativa al codice che hai stampato, facendo la seconda query hai a disposizione solo i valori realtivi a quel codice e quindi stamperai solo quelli.
    Ci potrebbe essere anche un modo sfruttando la query che avevi fatto tu, ma richiederebbe l'ausilio deggli array.


  • User Attivo

    Non posso perchè se sono 100 utenti faccio 100 query ? A me servirebbe una cosa da impostare solo una volta. Esatto con l'utilizzo degli array. per quello chiedevo un aiuto


  • User Attivo

    Allora potresti fare così:
    [php]
    $array1 = array ();
    $array2 = array ();
    while ( $row = mysql_fetch_array($esegui_query) ) {

    $nome = $row ['nome'];
    $indirizzo = $row ['indirizzo'];
    $titolo = $row ['titolo'];
    $autore = $row ['autore'];
    
    $array1 [$codice] ['indirizzo'] = $indirizzo;
    $array1 [$codice] ['nome'] = $nome;
    $array2 [$codice] ['titolo'] = $titolo;
    $array2 [$codice] ['autore'] = $autore;
    

    }
    [/php]

    Quindi ora hai due array (array1 contenente i valori della tabella1, array2 contenente i valorid della tabella2).
    Ora puoi ciclare i due array e stampare i dati come vuoi tu.
    Ovviamente potrebbe essere migliorato.


  • User Attivo

    Ti ringrazio per l'assistenza. Ho provato il tuo codice ma mi da errore ```
    Notice: Undefined variable: codice in /Users/p/Desktop/www2010/www/prova.php on line 36

    [php]    $array1 ['codice'] ['indirizzo'] = $indirizzo;
        $array1 ['codice'] ['nome'] = $nome;
        $array2 ['codice'] ['titolo'] = $titolo;
        $array2 ['codice'] ['autore'] = $autore;[/php]

  • User Attivo

    E' si ho dimenticato di valorizzare la variabile $codice, ma a quanto pare sei riuscito a risolvere da solo, bene.


  • User Attivo

    Quindi adesso ho 2 array. Riesci a darmi una mano su come estrarli ?
    Devo farlo con dei cicli foreach ?


  • User Attivo

    Puoi fare così
    [php]
    foreach ($array1 as $codice=>$value) {
    in $value hai l'indirizzo ed il nome
    in $array2[$codice] hai il titolo e l'autore

    }
    [/php]

    Spero di essere stato chiaro.


  • User Attivo

    Insomma...
    Io ho bisogno di estrarre nome a parte, indirizzo a parte e poi per questo codice visualizzare i dati come ti dicevo prima...
    Sono un po' in difficoltà detto in parole semplici 😞


  • User Attivo

    Devi scusarmi, ma mi sono sbagliato, dovrsti sostituire il ciclo while con il seguente:
    [php]
    $array=array();
    while ( $row = mysql_fetch_array($esegui_query) ) {
    $codice = $riga ['codice'];
    $array [$codice] ['indirizzo'] = $riga ['indirizzo'];
    $array [$codice] ['libri'] [] = array (
    'titolo' => $riga ['titolo'],
    'autore' => $riga ['autore'] );
    }

    poi per stampare fai così:

    foreach ( $array as $codice => $value ) {
    echo $value ['indirizzo'] . "<br/>";
    echo $value ['nome'] . "<br/>";
    foreach ($value['libri'] as $key=>$valoriLibri) {
    echo $valoriLibri['autore']."<br />";
    echo $valoriLibri['titolo']."<br />";
    }

    }

    [/php]

    Spero di non aver commesso errori, perchè sto andando via, ma se hai problemi fammi sapere che poi vedo oggi.
    Ciao.


  • User Attivo

    P-e-r-f-e-t-t-o-!
    Grazie!
    Ho modificato solamente $row con $riga e ho agiunto il campo costo!
    Funziona tutto perfettamente!
    [PHP]$array=array();
    while ( $riga= mysql_fetch_array($esegui_query) ) {
    $codice = $riga ['codice'];
    $array [$codice] ['nome'] = $riga ['nome'];
    $array [$codice] ['indirizzo'] = $riga ['indirizzo'];
    $array [$codice] ['libri'] [] = array (
    'titolo' => $riga ['titolo'],
    'autore' => $riga ['autore'],
    'costo' => $riga ['costo'] );
    }

    foreach ( $array as $codice => $value ) {
    echo $value ['indirizzo'] . "<br/>";
    echo $value ['nome'] . "<br/><br />";
    foreach ($value['libri'] as $key=>$valoriLibri) {
    echo $valoriLibri['autore']."<br />";
    echo $valoriLibri['titolo']."<br />";
    echo $valoriLibri['costo']."<br />";

    }
    

    echo "<hr></hr>";
    } [/PHP]


  • User Attivo

    Bene bene.