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

    Orinare record per data

    Ciao a tutti.
    Ho una pagina news nel sito dove vengono stampate tutte le news del DB ordinate per data.
    Io vorrei fare in modo che vengano stampate solo le news degli ultimi 30 giorni, in modo da non avere una paginazione con 1000 pagine.

    Nel DB il campo News_DateStart è in formato Date yyyy-mm-dd.

    Posto il codice:
    Codice PHP:
    $count mysql_query("SELECT COUNT(News_ID) FROM $table6");
    $res_count mysql_fetch_row($count);


    $tot_records $res_count[0];     // numero totale di records
    $per_page $news_in_homepage6;     // risultati per pagina(secondo parametro di LIMIT)
    $tot_pages ceil($tot_records $per_page);     // numero totale di pagine
    $current_page = (!$_GET['page']) ? : (int)$_GET['page'];     // pagina corrente
    $primo = ($current_page 1) * $per_page;     // primo parametro di LIMIT
    $query DB_Query("SELECT * FROM $table6 ORDER BY News_DateStart DESC LIMIT $primo$per_page");     // seconda query
        
    while ($result DB_Get_Results($query))
        {

    $data $result[4];
    $anno substr($data,0,4); //OK
    $mese substr($data,5,2); //OK
    $giorno substr($data,8,2); //OK

    //STAMPA LA DATA DAL DATABASE
    echo "      <td width=500 valign=top><div style=\"position:relative; margin:5; padding:0;\">\n";
    echo 
    "         <p class=\"BIANCOBOLDFONDO\">$giorno " $listaMesi[$mese-1] . $anno</span></p></td>\n";
    echo 
    " </tr>\n";

    echo 
    "     <tr>\n";
    echo 
    "      <td width=500 valign=top bgcolor=$color><div style=\"position:relative; margin:5; padding:0;\">\n";
    echo 
    "         <p class=\"sinistro\"><span class=\"TESTOBOLD\">$result[1]</span></p></div></td>\n";
    echo 
    " </tr>\n";

    echo 
    "     <tr>\n";
    echo 
    "      <td width=480 valign=top bgcolor=$color><div style=\"position:relative; margin:5; padding:0;\">\n";
    echo 
    "         <p class=\"sinistro\"><span class=\"TESTOBOLD\">$result[2]</span></p></div></td>\n";
    echo 
    " </tr>\n";

    echo 
    "     <tr>\n";
    echo 
    "      <td width=480 valign=top bgcolor=$color><div style=\"position:relative; margin:5; padding:0;\">\n";
    echo 
    "        <p class=\"sinistro\"><span class=\"TESTO\">$result[3]</span></p></div></td>\n";
    echo 
    " </tr>\n";

    echo 
    "     <tr>\n";
    echo 
    "      <td width=480 valign=top bgcolor=$color><div style=\"position:relative; margin:5; padding:0;\">\n";
    echo 
    "        <p class=\"destro\"><span class=\"TESTO\"><a href=\"$result[6]\" target=blank>Approfondisci>>></span></p></div></td>\n";
    echo 
    "     </tr>\n";
    eccetera.... 
    Devo forse usare la funzione LIMIT nella query del COUNT?
    Se si, in che modo?

    Vi ringrazio in anticipo.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    select * from tabella where campo_data >= CURDATE() - interval 30 day

  3. #3

    Ordinare record per data

    Ciao Nicola75ss,

    scusami se non ti ho risposto subito ma ho visto solo questa sera la tua risposta.

    Ti ringrazio infinitamente - Funziona a meraviglia.
    Ci ho messo un po' a capire se dovevo inserire la stringa solo su una query o su tutte e due ma dopo qualche prova sono arrivato alla meta.
    Tant'é che ho usato la stringa anche per un'altra pagina dove elenco le fiere in programma nell'anno.
    In questo caso ho usato solo CURDATE() senza - interval xx day perchè mi interessa stampare solo quelle maggiori o uguali a oggi nel DB.

    Grazie ancora.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Di niente.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.