Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203

    Elenco data in database mySQL

    Ciao a tutti!

    So che può sembrare una domanda stupida, sarà l'orario, ma sono ore che ci penso senza venirne a capo.

    Ho una tabella in un database mysql che, tra le varie voci, contiene un campo data (nel formato "date").
    Vorrei che la pagina php mi stampasse tutte le date contenute in questa tabella senza però ripeterle come avviene nel ciclo while. Come devo fare?

    codice:
    <?php
       $sql = "SELECT * FROM post ORDER BY date DESC";
    	$risultato = mysql_query($sql, $con);
    	while ($riga = mysql_fetch_object($risultato)){
    		$data=$riga->date;
    	
    echo $data . "
    ";
    }
    	  ?>
    Un aiutino?

  2. #2
    Se utilizzi la clausola DISTINCT puoi ottenere tutte le date senza doppioni:

    Codice PHP:
    $sql "SELECT DISTINCT date FROM post ORDER BY date DESC"
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Perfetto! Così funziona! Grazie!!!

    Un'ultima cosa, se ora volessi estrapolare solo l'anno dalla data?
    Ho provato così, ma non funziona:

    codice:
    $anno = $_REQUEST["anno"];
    $sql = "SELECT DISTINCT data FROM post WHERE YEAR(data)='$anno' ORDER BY data DESC";
    	$risultato = mysql_query($sql, $con);
    	while ($riga = mysql_fetch_object($risultato)){
    Mi conviene forse fare colonne separate nel database per anno e mese invece del solo campo "date"?

    Tutt'al più, se tu potessi consigliarmi qualche guida su come creare un sito tipo blog, te ne sarei infinitamente grata!

  4. #4
    Originariamente inviato da Reiko81
    Perfetto! Così funziona! Grazie!!!

    Un'ultima cosa, se ora volessi estrapolare solo l'anno dalla data?
    Ho provato così, ma non funziona:

    codice:
    $anno = $_REQUEST["anno"];
    $sql = "SELECT DISTINCT data FROM post WHERE YEAR(data)='$anno' ORDER BY data DESC";
    	$risultato = mysql_query($sql, $con);
    	while ($riga = mysql_fetch_object($risultato)){
    Mi conviene forse fare colonne separate nel database per anno e mese invece del solo campo "date"?

    Tutt'al più, se tu potessi consigliarmi qualche guida su come creare un sito tipo blog, te ne sarei infinitamente grata!
    Non si capisce bene cosa vuoi fare. La funzione year() è corretta, ma se l'anno ce l'hai giò dato che lo ricevi da request?

    Se vuoi recuperare tutti gli anni presenti nella tabella basta fare:

    Codice PHP:
    $sql "SELECT DISTINCT YEAR(data) AS anno FROM post ORDER BY data DESC";
    $risultato mysql_query($sql$con);
    while (
    $riga mysql_fetch_object($risultato)) {
        echo 
    $riga['anno'];

    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it L'avatar di Reiko81
    Registrato dal
    Oct 2009
    Messaggi
    203
    Me lo sono riguardato bene e ho capito finalmente come funziona! Grazie!

    Ho un altro quesito però, posso approfittarne?

    Ho messo in una pagina l'elenco degli anni con il link che mi porta a un'altra pagina in cui ci dovrebbero essere gli elenchi dei post di quell'anno ordinati per mesi.
    Vorrei però che si aprissero con un elenco cliccabile (con anchor) dei mesi in cui i post sono stati scritti.
    Ho fatto in questo modo:

    Codice PHP:
    $anno=$_REQUEST['anno'];
    $sql "SELECT DISTINCT MONTH(data) AS mese FROM post WHERE YEAR(data)='$anno' ORDER BY data DESC";

    $risultato mysql_query($sql$con) or die(mysql_error());
    while (
    $riga mysql_fetch_object($risultato)){
        echo 
    $riga->mese;} 
    Purtroppo però mi richiama solo 1 mese, il primo della tabella. Dove sbaglio?

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.