- Home
- Categorie
- Coding e Sistemistica
- PHP
- raggruppare per mese
-
raggruppare per mese
Ciao a tutti come faccio a creare una pagina del genere(nuotosicilia.altervista.org/archivio.html) in php?
cioè raggruppando le notizie per mese ed anno?
grazie!!!
-
Se le notizie sono contenute all'interno di un database MySQL puoi usare una query di questo tipo:
SELECT * FROM notizie ORDER BY anno DESC, mese DESC;
Ciao!
-
io le estraggo così:
[PHP]SELECT * FROM news WHERE data<='".$oggi."' ORDER BY data DESC, idNews DESC[/PHP]
ma raggrupparle in quel modo non lo so fare....
-
Una volta estratte, le scorri una per una e appena trovi un nuovo mese metti al relativa intestazione.
-
ciao,
ponendo che il campo data si chiami mydata:select count(*) as numero from tabella group by month(mydata)
in questo modo hai raggruppato i record per mese.
estrarre solo i record che hanno un determinato mese:
select * from tabella where month(mydata) = $mese
in questo modo estrai solo gli articoli di un determinato mese
altri comandi interessanti sono day(), year().
una ricerchina su gg ti aiuterà a vedere tutti gli altri comandi per gestire le date all'interno di una istruzione sql.
ciao ciao
-
@cali1981 said:
Una volta estratte, le scorri una per una e appena trovi un nuovo mese metti al relativa intestazione.
mi aiuti a farlo per favore perchè non mi è chiaro....
-
Allora, come detto, fai la select ordinando per data. Poi fai un ciclo while da cui estrai un riga per volta. A quel punto potresti salvarti il mese che estrai daogni riga. Quando estrai la successiva, fai il confronto, e se è diverso, visualizzi nella pagina l'intestazione del mese.
-
vediamo se così va bene:
[PHP]<?php
$query="SELECT * FROM news WHERE data<='".$oggi."' ORDER BY data DESC, idNews DESC";
$ris=@mysql_query($query);
while($riga=mysql_fetch_array($ris)){
$id=$riga['idNews'];
$titolo=$riga['titolo'];
$mese=substr($riga['data'],5,2);
$link=$riga['link'];
echo "<li>
<p class='MsoNormal' style='text-align: justify; margin-top: 0; margin-bottom: 0'>
<b><span style='font-family: Verdana'><font size='1'>
<a ";
if ($link=='')
echo "href='leggi.php?idNews=$id'";
else
echo "href='$link' target='_blank'";
echo ">$titolo</a></font></span></b></li>";
}
?>[/PHP]e ora??
-
[PHP]<?php
$query="SELECT * FROM news WHERE data<='".$oggi."' ORDER BY data DESC, idNews DESC";
$ris=@mysql_query($query);
$mese_precendete = '';
while($riga=mysql_fetch_array($ris)){
$id=$riga['idNews'];
$titolo=$riga['titolo'];
$mese=substr($riga['data'],5,2);
if($mese_precendete != $mese) {
echo '<h1>Mese $mese</h1>';
$mese_precendete = $mese;
}
$link=$riga['link'];
echo "<li>
<p class='MsoNormal' style='text-align: justify; margin-top: 0; margin-bottom: 0'>
<b><span style='font-family: Verdana'><font size='1'>
<a ";
if ($link=='')
echo "href='leggi.php?idNews=$id'";
else
echo "href='$link' target='_blank'";
echo ">$titolo</a></font></span></b></li>";
}
?>[/PHP]
-
ok aspetta che provo e ti faccio sapere.
Grazie!!
-
di niente! Considera che non l'ho provato quindi forse qualche aggiustamento ci vuole...
-
ma c'è una funzione in php che mi visualizza invece di 03-->Marzo?
-
grazie!!! funziona!!!
-
Di niente! Buon proseguimento!