2012-07-08 28 views
6

¿Cómo mostraría las filas que tienen un valor de marca de tiempo en la última hora?MySQL Timestamp - Mostrar 3 filas en la última hora

Esto es lo que tengo ahora, y muestra las últimas filas, y solo 3 filas debido al LIMITE.

$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; ?> 

En mi código anterior, cada vez que se encuentra una fila, ecos un iframe. ¿Cómo editaría la consulta para usar mi columna de marca de tiempo para mostrar solo la última dentro de una hora?

Gracias de antemano por su ayuda!

EDIT: Esto es lo que mi columna de marca de tiempo se ve así: http://img856.imageshack.us/img856/4135/columnk.png

+0

Lo haces a través de una instrucción WHERE (condicional) simple. Como no especificó qué tipo de marca de tiempo (Unix, SQL, etc.) utiliza, no puedo darle una respuesta definitiva, pero si fuera unix, se vería así: 'SELECT * FROM made_orders WHERE marca de tiempo> '".time() - 3600."' ORDER BY id DESC' –

Respuesta

14

Su consulta actual obtiene los tres pedidos más recientes independientemente de si fueron creados o no en la última hora.

emplear esta solución:

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

Esto tendría como máximo tres órdenes en la última hora. Si solo había un pedido en la última hora, solo seleccionaría una fila.

+0

Esto funciona genial! ¡Gracias! –

+0

que es tan hermoso – ErichBSchulz

0

SELECT * FROM made_orders ORDER BY id donde UNIX_TIMESTAMP (yourTimestampColumn)> UNIX_TIMESTAMP() - 60 * 60

Cuestiones relacionadas