- Home
- Categorie
- Coding e Sistemistica
- Coding
- aiuto con una query e manipolazione dei dati estratti
-
Come ti dicevo stampandolo così ogni volta mi ripete il nome e indirizzo e poi il relativo titolo e autore[PHP] nome1
indirizzo1titolo1_cod1
nome1
indirizzo1titolo2_cod1
nome1
indirizzo1titolo1_cod2
nome2
indirizzo2titolo2_cod2[/PHP]
Invece io vorrei che ad ogni nome ci fosse la lista ....
-
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.
-
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
-
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.
-
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]
-
E' si ho dimenticato di valorizzare la variabile $codice, ma a quanto pare sei riuscito a risolvere da solo, bene.
-
Quindi adesso ho 2 array. Riesci a darmi una mano su come estrarli ?
Devo farlo con dei cicli foreach ?
-
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.
-
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
-
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.
-
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]
-
Bene bene.