luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
Salve, volevo sapere una cosa che non ne vengo a capo..
ho il problema di raggruppare le date degli articoli in questo modo:
vorrei fare la stessa cosa di questo sito: http://multimedia.digital.it e vedete in mezzo alla pagina..alla voce Archivio.
2012
2013
solo ora ho 6 record per test e lo script.
mi unisce in questo modo:
2012
2012
2013
2012
come mai?
vi posto il codice:
Codice sorgente - presumibilmente PHP |
<?php //Visualizzo le date $strSQL = "SELECT * FROM articoli GROUP BY dtmPubblicazione;"; //Elenco le date $dateArray=explode('-',''.$row["dtmPubblicazione"].''); echo "<li><a href=\"index.php?m=articoli&action=archive&date=$dateArray[2]\">$dateArray[2]</a></li>\n"; } //Libero la memoria ?>
|
non ne vengo fuori.. vorrei dire che il campo dtmPubblicazione è varchar(255).. perché posso fare inserire a me un data che non è ancora uscita e la pubblico quando e il momento..
non so se si può fare con datetime.. visto che sto imparando seriamente...solo che vado passo per passo..
vi ringrazio molto.
Aspetto per risolvere il problema..
buona serata.
Ultima modifica effettuata da luigi7 il 27/03/2012 alle 20:22 |
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
salve ... vorrei fare una cosa cosi come quello in allegato..
mi dite come posso fare?
grazie mille.
|
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
ho risolto:
Codice sorgente - presumibilmente PHP |
<?php //Visualizzo le date $strSQL = "SELECT count(*) as Num, dtmPubblicazione FROM articoli GROUP BY dtmPubblicazione"; //Elenco le date $dateArray=explode('-',''.$row["dtmPubblicazione"].''); echo "<li><a href=\"index.php?m=articoli&action=archive&date=$dateArray[2]\">$dateArray[2]</a></li>\n"; } //Libero la memoria ?>
|
per fare il menu mostra/nascondi dei mesi come posso fare?
grazie mille.
|
|
ale.gatti96 (Member)
Pro
Messaggi: 71
Iscritto: 29/11/2011
|
|
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
ciao e grazie per i link .. ma non ho ancora risolto e non so come mai..
ti allego le immagini..
vedi se mi capisci lo script è l'ultimo che ho postato..
non so se è un problema di inserimento o di visualizzazione che faccio io e non so come..
idee?
grazie mille e buona giornata.
|
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
e questo è l'archivio come mi presenta..
non so più che fare..
ciao.
|
|
ale.gatti96 (Member)
Pro
Messaggi: 71
Iscritto: 29/11/2011
|
Penso che l'errore sia nel GROUP BY, li raggruppa per ogni giorno e non per anno come vorresti tu.
Io lo correggerei così ():
Codice sorgente - presumibilmente Php |
<?php //Visualizzo le date $strSQL = "SELECT count(*) as Num, year(dtmPubblicazione) as anno FROM articoli GROUP BY anno ORDER BY anno"; //Elenco le date echo "<li><a href=\"index.php?m=articoli&action=archive&date=$row["anno"]\">$row["anno"]</a></li>\n"; //Libero la memoria
|
In questo modo non devi neanche esplodere la data per ricavarti l'anno, ci pensa MySQL.
Prova e dimmi se funziona.
Ultima modifica effettuata da ale.gatti96 il 28/03/2012 alle 17:55 |
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
ciao, ho provato ma ora non stampa nulla.. il codice è questo ho tolto la mia query e ho messo la tua..
forse sarà problema della dataArray?
Codice sorgente - presumibilmente Php |
<?php //Visualizzo le date //$strSQL = "SELECT count(*) as Num, dtmPubblicazione FROM articoli GROUP BY dtmPubblicazione"; $strSQL = "SELECT count(*) as Num, year(dtmPubblicazione) as anno FROM articoli GROUP BY anno ORDER BY anno"; //Elenco le date $dateArray=explode('-',''.$row["dtmPubblicazione"].''); echo "<li><a href=\"index.php?m=articoli&action=archive&date=$dateArray[2]\">$dateArray[2]</a></li>\n"; } //Libero la memoria ?>
|
|
|
luigi7 (Normal User)
Pro
Messaggi: 83
Iscritto: 28/06/2011
|
Postato originariamente da ale.gatti96:
Penso che l'errore sia nel GROUP BY, li raggruppa per ogni giorno e non per anno come vorresti tu.
Io lo correggerei così ():
Codice sorgente - presumibilmente Php |
<?php //Visualizzo le date $strSQL = "SELECT count(*) as Num, year(dtmPubblicazione) as anno FROM articoli GROUP BY anno ORDER BY anno"; //Elenco le date echo "<li><a href=\"index.php?m=articoli&action=archive&date=$row["anno"]\">$row["anno"]</a></li>\n"; //Libero la memoria
|
In questo modo non devi neanche esplodere la data per ricavarti l'anno, ci pensa MySQL.
Prova e dimmi se funziona. |
niente cosi non stampa nulla.. come mai?
perché io inserisco la data in questo modo 28-03-2012 è il problema formato data?
grazie mille. |
|