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

    ordinare news secondo la data

    Ciao a tutti...dunque, sono alle prime armi e sto cercando di fare un semplice sistema di news che permetta di inserirle e di visualizzarle in ordine di data e...proprio sulle date sorge il problema, sono giorni che leggo articoli sulle date ma non riesco a chiarimi il concetto.

    Cosa, che tipo di dato, devo inserire nel database nell'atto di inserire la news per poi estrarlo ed ordinarlo?

    La funzione che mi restituisce il formato di data che mi interessa è:
    $date_format = date('D d F y G:i', $unix_time);
    Grazie ^^

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Il campo nel database lo potresti scegliere, ad esempio, tra "DATE" o "DATETIME". Se ad esempio scegliessi DATE il formato verrebbe memorizzato come yyyy-mm-dd.

    Quando inserisci le news nel database, nella query INSERT metterai NOW() come valore associato al campo che conterrà la data:
    codice:
    $query = "INSERT INTO tabella (id, campo_data, altro_campo)
              VALUES (NULL, NOW(), '$valore_altro_campo')";
    Quando recuperi la data, nella query SELECT usi il DATE_FORMAT:
    codice:
    $query = "SELECT id, altro_campo,
              DATE_FORMAT(campo_data, '%d/%m/%Y')
              as nuovo_campo_data FROM tabella";
    Alla fine, avrai la data formattata come dd/mm/yyyy richiamando il valore da nuovo_campo_data:
    codice:
    while($record = mysql_fetch_array($result)) {
        echo $record['nuovo_campo_data'];
    }
    Tutto qui...

  3. #3
    E' sempre buona usanza, mettere un contatore id come campo chiave di ogni tabella.
    Torna sempre utile.
    In questo caso, puoi usarlo per ordinare le news.

    Le news più vecchie, hanno il numero id + basso.
    E non impazzisci! :master:
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  4. #4
    a - e per ordinare le date?

    Cmq si all'id ci avevo pensato, ma a me interessava proprio usare le date :P

    Edit:

    b - Io ho provato ad usare anche il timestamp in questo modo:

    - Inserimento nel DB -
    codice:
    $news_date = mktime();
    - Estrazione ed ordinamento -
    codice:
    	  <?php
    	  include("includes/config.inc.php");
    	  //Connessione al database
    	  $conn = db_connect($db_host,$db_user,$db_password,$db_name);
    	  
    	  //Operazione di select di tutte le news
    	  $qselect = 'SELECT * FROM lost_news ORDER BY news_date DESC LIMIT 0, 50';
    	  $ris = @mysql_query($qselect,$conn) or die("Errore nella Query:" . mysql_error() );
    	  //Verifica dei risultati estratti
    	  $estratti = @mysql_num_rows($ris);
    	  //stampa dei risultati
    	  if($estratti == 0)
    	  {
    	  	print"Non sono presenti news :-(";
    	  }
    	  $ralign = TRUE;
    	  while( $row = @mysql_fetch_array($ris) )
    	  {
    	  	$titolo = $row[news_title];
    		$testo = $row[news_text];
    		$data = date('D d F y G:i',$row[news_date]);
    		if($ralign)
    			print "<p align=\"right\">$titolo - posted on $data 
     $testo 
    
    </p>";
    		else
    			print "<p align=\"left\">$titolo - posted on $data 
     $testo 
    
    </p>";
    		$ralign = !$ralign;			
    	  }
    	  @mysql_close($conn);
    	  ?>
    E' corretto?

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Nella query SELECT metti "ORDER BY campo_data DESC LIMIT 0,5", ordina i risultati per il campo data in maniera decrescente da 0 a 5.

  6. #6

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.