- Home
- Categorie
- Coding e Sistemistica
- PHP
- Stampare risultati di una query a poco a poco
-
Stampare risultati di una query a poco a poco
Ragazzuoli ho ancora una volta bisogno dei vostri saggi consigli.
Allora, vado subito al dunque:
Esempio:
ho una galleria di foto con 100 foto;
eseguo la query per visualizzarle ordinandole per data di inserimento;
Obiettivo da raggiungere:
devo poter far visualizzare la galleria in questo modo:
5-01-2009:
stampo le 20 foto aggiunte quella data;
2-01-2009:
stampo le 50 foto aggiunte quella data;
1-01-2009:
stampo le 30 foto aggiunte quella data;
***Come fare? Quale diaboliche istruzioni devo utilizzare?
***Cioè non penso sia difficile, poiché la query è già ordinata in quel modo, solo non so come effettuare la stampa raggruppando in quel modo.Spero di esser stato abbastanza chiaro...
Aiutatemi voi vi pregoooooooooo!
-
Prova così:
$SQL = "SELECT * FROM tabella GROUP BY data ORDER BY id DESC";
-
Ma con quella query non risolvo niente!
La query ce l'ho già funzionante quello che non so è come stampare le foto suddividendole a schermo, come ho fatto vedere sopra.
-
Dai ragazzi non sono riuscito ancora a trovare una soluzione...
Proprio non avete idee? Vi prego
-
@Japgalaxy said:
Ma con quella query non risolvo niente!
La query ce l'ho già funzionante quello che non so è come stampare le foto suddividendole a schermo, come ho fatto vedere sopra.Forse adesso ho capito cosa vuoi. VEDIAMO LA PRIMA COSA CHE MI VIENE IN MENTE
// LA TABELLA DICIAMO CHE E' COMPOSTA DA CAMPI CHE IO CHIAMERO'
// 1 - id INT AUTOINCREMENT
// 2 - **data **DATE 00-00-0000
// 3 - **img **VARCHAR(100)
// 4 - altimg VARCHAR(100)// AVREMO BISOGNO DI DUE CICLI
$DATA = "SELECT DISTINCT(data) AS data_ok FROM tabella ORDER BY data DESC";
$QDATA = mysql_query($DATA,$CONN);
while(($OBJD = mysql_fetch_object($QDATA)))
{
$DX = ($OBJD->data_ok); // LA DATA
$ANNO = $DX[0].$DX[1].$DX[2];DX[3];
$MESE = $DX[5].$DX[6];
$GIORNO = $DX[8].$DX[9];
$DATA_ITA = $GIORNO."/".$MESE."/".$ANNO;echo $DATA_ITA; // VISUALIZZO LA DATA
echo "<br>"; // E VADO A CAPO$X = 1; // PER LA VISUALIZZAZIONE DELLE IMMAGINI ELENCATE
$SQL = "SELECT * FROM tabella WHERE data='$DX' ORDER BY id DESC";
$QUERY = mysql_query($SQL,$CONN);
while(($OBJ = mysql_fetch_object($QUERY)))
{
// PRENDO I VALORI CHE MI SERVONO DAL DATABASE
$IMG = ($OBJ->img); // NOME DELL'IMMAGINE
$ALTIMG = ($OBJ->altimg); // TITOLO IMMAGINE
// ADESSO CI SERVE SAPERE DOVE SONO LE IMMAGINI
$DIR = "directoryIMG/" . $IMG;
if ($X % 4 == 0) // IL NUMERO 4 INDICA DOPO QUANTE IMMAGINI VOGLIO ANDARE A CAPO
{
// VISUALIZZO LE IMMAGINI RELATIVE ALLA DATA E VADA A CAPO DOPO LA QUARTA IMMAGINE
echo "<img src='$DIR' width='100' height='100' hspace='10' vspace='10' border='0' align='absmiddle' title='$ALTIMG'><br>";
}
else
{
// VISUALIZZO LE IMMAGINI RELATIVE ALLA DATA AFFINCHE' ARRIVO ALLA QUARTA IMMAGINE
echo "<img src='$DIR' width='100' height='100' hspace='10' vspace='10' border='0' align='absmiddle' title='$ALTIMG'>";
}
$X++;
} // CHIUDO WHILE INCLUSO
} // CHIUDO PRIMO WHILEPER QUANTO RIGUARDA L'EVENTUALE RIDIMENSIONE DELLE IMMAGINI E' OPPORTUNO FARE UN CONTROLLO SULLE DIMENSIONI EFFETTIVE
-
Alla fine ho risolto in un modo molto più semplice
Ho semplicemente aggiunto alla query un "ORDER BY data DESC";E poi, durante il ciclo che mi visualizza le immagini fatto ciò:
$datafoto = convertidata($picture->data); if ($ultimadata==""){ $ultimadata = convertidata($picture->data); $out .= '<h2 align="center" class="galdata">'.$ultimadata.'</h2>'; } else if ($ultimadata!=$datafoto){ $ultimadata = $datafoto; $out .= '<h2 align="center" class="galdata">'.$ultimadata.'</h2>'; }
Così facendo prima di ogni gruppo di foto con data diversa mi verrà stampata la data. Lo stesso discorso non appena essa cambia...
Grazie lo stesso per il supporto!