- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto query estrazione dati
-
Aiuto query estrazione dati
Ciao a tutti.
Ho una tabella di un database dove vorrei conservare i miei dati.
La tabella contiene 3 campi: id, tipo, contenuto.Volevo fare una sola query all'inizio di ogni pagina per estrarre i dati. A questo punto una volta estratti i dati vorrei posizionarli al posto giusto. Ho pensato di fare un array multidimensionale che mi estrae prima tutti i tipi e poi per ogni tipo mi estrae il suo contenuto.
A questo punto come faccio a far scrivere il giusto contenuto utilizzando l'array creato ?
[php]$estrai_contenuti="SELECT * FROM contenuti_ita";
$esegui_estrai= mysql_query($estrai_contenuti,$con) or die ("impossibile eseguire la estrai_contenuti");while ($row = mysql_fetch_array($esegui_estrai)) {
$testi[$row['tipo']][$row['contenuto']] = $row;
}foreach ($testi as $tipo => $array_contenuto) {
foreach ($array_contenuto as $id => $testi_contenuto) { }
} [/php]Adesso vorrei estrarre il contenuto del tipo(perche) in una determinata sezione ma non so come richiamarlo.
-
[PHP]$estrai_contenuti="SELECT * FROM contenuti_ita WHERE tipo='perche'";[/PHP]
-
Grazie, questa è la soluzione più semplice ma in una pagina in cui ho 5 contenuti dovrei fare 5 query... cercavo di farne una sola e memorizzare tutti i dati in un unico array e poi estrarli dall'array....
-
Prova utilizando "ORDER BY". In questo modo potrai ordinarli per tipo, e ti ritroverai con prima tutto quelli del tipo 1, poi quelli del tipo 2, etc...
[php]$estrai_contenuti="SELECT * FROM contenuti_ita ORDER BY tipo asc ";[/php]Se vuoi invertire l'ordine ti basterà sostituire "asc" con "desc".
Se vuoi interrompere il ciclo o fare output di HTML quando finiscono gli elementi di un tipo basterà inserire un "if" ;).E' molto più comodo di quello che cerchi di fare tu... Se poi avevi in mente altro è un'altra questione ;).
-
I contenuti non sono sequenziali... quindi non potrei fare in questa maniera...
-
Potresti costruire un semplice array con chiave il campo 'tipo',
e come contenuto l'intera riga estratta dal db.In pratica sostituisci nel tuo codice originale:
while ($row = mysql_fetch_array($esegui_estrai)) { $testi[$row['tipo']][$row['contenuto']] = $row; } ```con
while ($row = mysql_fetch_array($esegui_estrai)) {
$testi[$row['tipo']] = $row;
}// esempio per accedere ai dati di un tipo
echo $testi['perche']['contenuto'];
-
Perfetto!
Ti ringrazio! Era proprio quello che volevo!!!
Grazieeeeeeeee
-
Bene, piacere mio di averti averti aiutato!