2012-07-08 15 views
6

Come visualizzare le righe con un valore di data e ora nell'ultima ora?Timestamp MySQL - Visualizza 3 righe nell'ultima ora

Ecco quello che ho adesso, e mostra le ultime righe, e solo 3 righe a causa del LIMIT.

$query5= mysql_query("SELECT * FROM `made_orders` ORDER by id DESC LIMIT 0,3"); 



    WHILE($datarows5 = mysql_fetch_array($query5)): 

    $name4 = $datarows5['Name']; 
    $phone4 = $datarows5['Phone']; 
    $entree4 = $datarows5['Entree']; 
    $side14 = $datarows5['Side 1']; 
    $side24 = $datarows5['Side 2']; 
    $drink4 = $datarows5['Drink']; 
    $totalcost4 = $datarows5['Total Cost']; 
    $ip4 = $datarows5['Ip']; 
    $id4 = $datarows5['id']; 
    $time4 = $datarows5['timestamp']; 

    echo "<iframe src=\"creatmeal-data.php?id={$id4}\" width=\"430px\" style=\"border:0px\" height=\"350px\"/></iframe>"; 

endwhile; ?> 

Nel mio codice precedente, ogni volta che viene trovata una riga, echos un iframe Come modifico la query per utilizzare la colonna Timestamp per mostrare solo l'ultima entro un'ora.

Grazie in anticipo per il vostro aiuto!

EDIT: Ecco ciò che la mia colonna timestamp appare come: http://img856.imageshack.us/img856/4135/columnk.png

+0

Lo fai attraverso una semplice istruzione WHERE (condizionale). Dato che non hai specificato quale tipo di timestamp (Unix, SQL, ecc.) Usi, non posso darti una risposta definitiva, ma sarebbe se fosse unix, sarebbe simile a questa: 'SELECT * FROM made_orders WHERE timestamp> '".time() - 3600."' ORDER BY id DESC' –

risposta

14

vostra query corrente ottiene i tre ordini più recenti indipendentemente dal fatto che siano stati creati o meno nell'ultima ora.

utilizzare questa soluzione:

SELECT * 
FROM made_orders 
WHERE timestamp >= NOW() - INTERVAL 1 HOUR 
ORDER BY timestamp DESC 
LIMIT 3 

Questo otterrebbe al massimo tre ordini nell'ultima ora. Se ci fosse un solo ordine nell'ultima ora, selezionerebbe solo una riga.

+0

Funziona alla grande! Grazie! –

+0

che è così bello – ErichBSchulz

0

SELECT * FROM made_orders Ordina per ID DOVE UNIX_TIMESTAMP (yourTimestampColumn)> UNIX_TIMESTAMP() - 60 * 60

Problemi correlati