Data nel while

Giogiosw

Utente Attivo
12 Nov 2013
31
0
0
Salve
come da titolo , vorrei sapere se è possibile impostare il while che stampa i risultati per data ?
esempio

Oggi
News 1
News 2
Ieri
news 3
News 4
9 Gennaio
News 5
News 5
e cosi invia

La tabella è strutturata in questo modo
id | testo | data_creazione

data_creazione = timestamp

ho strutturato cosi la query

PHP:
$prelievo = mysql_query("SELECT * FROM tabella_news");
while($data=mysql_fetch_array($prelievo)){

echo "<a href=\"news.php?id=".$data['id']."\"> ".$data['testo']."</a>";
}

è possibile fare una cosa del genere ??
Grazie mille in anticipo
 
ciao
intanto devi impostare la query
PHP:
$prelievo = mysql_query("SELECT * FROM tabella_news ORDER BY data_creazione");
poi dentro il while metti una serie di if che verifichino la data se oggi o iero o più e in funzione separi le notizie
 
si scusa mi ero dimenticato di mettere l'order
con if ? e non diventa troppo lungo ??
Mettiamo il caso ho le news di un anno scrivo 365 if ?!
 
Ciao, puoi provare questo esempio
PHP:
<?php

$sql = new mysqli("localhost", "root", "", "database");

$query = "SELECT * FROM notizie ORDER BY data DESC";

$result = $sql->query($query);

$data = "";
if ($result && $result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        if ($row['data'] != $data) {
            $data = $row['data'];
            echo "<p><b>" . $row['data'] . "</b></p>";
        }
        echo "<p>" . $row['notizia'] . "</p>";
    }
} else {
    echo "<p>non ci sono notizie</p>";
}
tabella e campi ovviamente li ho inventati
 
ciao
ecco uno schema di come fare
PHP:
<?php
//....
$sql = new mysqli("localhost", "root", "", "database");
$query = "SELECT * FROM notizie ORDER BY data_creazione DESC";
$result = $sql->query($query);
//se come dici le date sono in timestamp
//faccio tutti i passaggi
$oggi=time();//legge la data odierna in timestamp
$ieri=$oggi-(24*60*60);//tolgo un giorno
$ieri_altro=$ieri-(24*60*60);//tolgo un altro giorno
if ($result && $result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        if ($row['data_creazione'] > $ieri) {
            echo "news OGGI ore ".date("H:i";$row['data_creazione'])."<br />";
		}elseif($row['data_creazione'] > $ieri_altro && $row['data_creazione'] < $ieri){
			echo "news IERI ore ".date("H:i";$row['data_creazione'])."<br />";
		}else{
			//se vuoi il mese in italiano devi farti un arrai coi mesi
			//e modificare la riga sotto
			echo "news del ".date("d/m";$row['data_creazione'])."<br />";
		}
		echo $row['notizia'] . "<p>&nbsp;</p>";
    }
} else {
    echo "<p>non ci sono notizie</p>";
}
//......
?>

p.s.
come ha fatto giustamente criric, usa le istruzioni mysqli (a oggetti o procedurale), abbandona le vecchie mysql
 

Discussioni simili