Oppure

Loading
27/03/12 18:19
luigi7
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: 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:
<?php
//Visualizzo le date
$strSQL = "SELECT * FROM articoli GROUP BY dtmPubblicazione;";

$result = mysql_query($strSQL);

//Elenco le date
while($row = mysql_fetch_array($result)){

	
	$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
mysql_free_result($result);

?>


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 27/03/12 18:22
aaa
28/03/12 9:43
luigi7
salve ... vorrei fare una cosa cosi come quello in allegato..

mi dite come posso fare?

grazie mille.
aaa
28/03/12 12:26
luigi7
ho risolto:

<?php
//Visualizzo le date
$strSQL = "SELECT count(*) as Num, dtmPubblicazione FROM articoli GROUP BY dtmPubblicazione";

$result = mysql_query($strSQL);

//Elenco le date
while($row = mysql_fetch_array($result)){

	
	$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
mysql_free_result($result);

?>


per fare il menu mostra/nascondi dei mesi come posso fare?

grazie mille.
aaa
28/03/12 14:42
ale.gatti96
Per il menù guarda qua:
web-link.it/scripting/…
aaa
28/03/12 15:25
luigi7
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.
aaa
28/03/12 15:26
luigi7
e questo è l'archivio come mi presenta..

non so più che fare..

ciao.
aaa
28/03/12 15:50
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ì ():
<?php 
//Visualizzo le date 
$strSQL = "SELECT count(*) as Num, year(dtmPubblicazione) as anno FROM articoli GROUP BY anno ORDER BY anno";
$result = mysql_query($strSQL); 
//Elenco le date 
while($row = mysql_fetch_array($result))
     echo "<li><a href=\"index.php?m=articoli&action=archive&date=$row["anno"]\">$row["anno"]</a></li>\n";
//Libero la memoria 
mysql_free_result($result); ?>

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 28/03/12 15:55
aaa
28/03/12 15:55
luigi7
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?

<?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";
$result = mysql_query($strSQL);

//Elenco le date
while($row = mysql_fetch_array($result)){

	
	$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
mysql_free_result($result);

?>
aaa