Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Raggruppare per data del mese

    ciao ragazzi.
    Io ho archiviato delle notizie in un database con questi campi:
    ID_NOTIZIA , TITOLO , DATA


    Ora vorrei creare delle pagine in cui riportare queste notizie...il problema è come fare a raggrupparle in questo modo in automatico?
    So che è difficile ma grazie per chi mi aiuterà!!

    :: Notizie di Aprile 2007

    - Notizia 1
    - Notizia 2
    - Notizia 3
    ecc.

    :: Notizie di Marzo 2007

    - Notizia 1
    - Notizia 2
    - Notizia 3
    ecc.

    :: Notizie di Febbraio 2007

    - Notizia 1
    - Notizia 2
    - Notizia 3
    ecc.

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    prova così:
    Codice PHP:
    SELECT id_notizia titolo ,data FROM nome_tabella ORDER BY data ASC 

  3. #3
    Beh.... la query di mariox non mi sembra sia quella adatta.
    Primo perché a te le news serve pubblicarle in ordine di data decrescente, secondo poi perché non le separi per mese/anno.

    Io avevo lo stesso tuo problema ed ho aggirato con un barbatrucco che, sicuramente non sarà né performante né il metodo migliore, ma di sicuro funziona.

    Innanzi tutto, nella tabella dove inserisco le news, oltre al campo data in formato timestamp, ho aggiunto due campi: uno per il mese ed uno per l'anno scritti in formato numerico.

    Nella pagina delle news, poi faccio il seguente ciclo:

    Codice PHP:
    $anno_in_corso date("Y");
    $mese_in_corso date("m");

    for (
    $i $mese_in_corso$i >= 1$i--) {

    $sql "
           SELECT id, testo, link, quantaltro
           FROM news
           WHERE anno = '
    $anno_in_corso'
           AND mese = '
    $i'
           ORDER BY data DESC
           "
    ;
           
    $query mysql_query($sql);

    // qui scrivi la routine per stamprare a video le notizie

    mysql_free_result($query);


    Con questo ciclo fai una query per ogni mese.
    Indubbiamente carichi il server ma almeno risolvi.

    Se poi qualcuno avesse un metodo migliore e più performante, saremmo tutti ben contenti di vederlo!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Codice PHP:
    $mesi = array(=> 'Gen','Feb','Mar','Apr','Mag','Giu','Lug','Ago','Set','Ott','Nov','Dic');

    $query mysql_query("select notizia,extract(year_month from campo_data) as mese_anno
                       from tabella
                       order by mese_anno desc"
    ) or die(mysql_error() );

    $mese_anno '';
    while (
    $row mysql_fetch_assoc($query) ) {
        
    sscanf($row['mese_anno'], '%4d%2d'$anno$mese);
        if (
    $row['mese_anno'] != $mese_anno){
            echo 
    '[b]'.$mesi[$mese].' '.$anno.'[/b]
    '
    ;
            echo 
    $row['notizia'].'
    '
    ;
            
    $mese_anno $row['mese_anno'];
        }
        else {
        echo 
    $row['notizia'].'
    '
    ;
        }


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.