Oppure

Loading
28/03/12 15:59
luigi7
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ì ():
<?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.


niente cosi non stampa nulla.. come mai?

perché io inserisco la data in questo modo 28-03-2012 è il problema formato data?

grazie mille.
aaa
28/03/12 16:04
ale.gatti96
Ma il campo dtmPubblicazione che tipo è?
Fai uno screenshot della struttura della tabella.
aaa
28/03/12 16:09
luigi7
ecco ti allego la struttura .. ora è un po sballata poi vedrò di modificarla e metterla a modo.

ti ringrazio per l'aiuto..

grazie.
aaa
28/03/12 16:20
ale.gatti96
Ecco perché non funziona, hai usato un varchar(255) per inserire una data! è uno spreco di memoria inutile, per le date una il tipo date e se ti servono anche ora, minuti e secondi usa datetime, ma non un varchar; per due motivi: occupi più memoria e la gestione di date è più semplice.
Comunque cambia il tipo di dtmPubblicazione da varchar(255) in date (dalla schermata struttura clicchi sulla matita sulla riga di dtmPubblicazione e modifichi il tipo).
Poi riprova il codice che ti ho scritto.
aaa
28/03/12 16:47
luigi7
ciao e ti ringrazio molto ho fatto come dicevi tu e ha funzionato e poi ho riscritto il database a modo.. quello di prima era un tutorial che ho trovato su internet....

Poi ora mi protesti spiegarmi come inserire la data in formato italiano?
adesso negli articoli mi viene cosi:

Pubblicato: 2012-03-28

perché nel campo di testo input ho messo cosi:
Data:&nbsp;<input type="text" name="strData" value="<?php echo date("d-m-Y";)?>"><p>

però se lo metto nel nostro formato lui mi scrive 0000-00-00.. come mai?

Grazie mi sei stato di aiuto.. ti ringrazio molto..aspetto soluzione per questa cosa delle date..
grazie.
aaa
28/03/12 16:59
ale.gatti96
Il modo più semplice secondo me è usare date_format() nella query SQL.
Guarda il punto 2 di questa guida: mrwebmaster.it/php/articoli/…

P.S. Qual'è l'indirizzo di questo sito che stai facendo?
aaa
28/03/12 17:55
luigi7
ok fatto grazie mille... ancora una cosa

per l'inserimento manuale della data come faccio?

Io ho questo

Data:&nbsp;<input type="text" name="strData" value="<?php echo @$strData;?>" size="50" maxlength="100"><p>

e poi faccio un submit e inserisco la data con la variabile post $strData ..

come faccio fare che l'utente scrive la data in italiano e la inserisce in inglese?

grazie mille e appena finisco ti do i link via privato..

ciao e buona serata..
aaa
28/03/12 20:23
ale.gatti96
Esplodi la data in italiano e la ricomponi in inglese con giorno e anno invertiti, poi la inserisci normalmente.
Es.
$arrayData=explode('-',$strData);
$dataInglese=$arrayData[2].'-'.$arrayData[1].'-'.$arrayData[0];

Naturalmente prima fai un controllo per vedere se $strData è scritta in modo corretto.
aaa