2015-06-18 3 views
1

Моя проблема проста: у меня есть кнопка, которая должна отображаться, если в базе данных за последние 24 часа есть записи. Я объясняю:Проверьте, есть ли записи за последние 24 часа

У меня есть таблица в моем db, которая содержит Datetime (день/месяц/годы: минуты: секунды, например, 15/01/2012 21:14:05). Я хочу, чтобы каждая запись сохранялась в <table> на другой странице с именем Warning, если я нажму кнопку. Моя проблема в том, что кнопка должна отображаться на первой странице ТОЛЬКО, ЕСЛИ есть записи между последними 24h и сейчас. Я хочу что-то вроде этого:

if (isset(records in the past 24 hours)) 
{ 
    echo "<input type=\"button\" onclick=\"location.href='../Warning/Warning.php';\" value=\"WARNING\"/>"; 
} 

Я попытался с помощью date("d/m/Y h:m:s", time() - 60 * 60 * 24), но я думаю, что я не использую его правильно. Как проверить, есть ли записи за последние 24 часа?

ответ

2

Вы можете рассчитывать записи, как это:

SELECT count(*) FROM records WHERE datetimefield >= DATE_SUB(NOW(),INTERVAL 1 DAY); 

Пример здесь: http://sqlfiddle.com/#!9/c106f/1/0

В PHP вы можете сделать то же самое, как это:

$recInLast24 = array() 
foreach($records as $record) { 
    if(strtotime($record['datetimefield']) >= time() - 24 * 60 * 60) { 
    $recInLast24[] = $record; 
    } 
} 
if(count($recInLast24) > 0) { 
    echo "<button..."; 
} 

Есть несколько возможных способов ,

+0

Кажется правильным, но idk why 'SELECT count (*) FROM records WHERE datetimefield> = DATE_SUB (NOW(), INTERVAL 1 DAY);' return 0 ... Я просто добавил новую запись на сегодня, чтобы она вернулась 1. Я пытаюсь выяснить это – Hearner

+0

вставьте инструкцию INSERT, и я посмотрю на нее. – codeneuss

+0

Я попробовал mysqli_fetch_array (mysqli_query ($ db, "SELECT count (*) FROM alerte WHERE STR_TO_DATE (Date_heure, 'd%/m%/Y% H%: i%: s%')> = DATE_SUB (NOW() , INTERVAL 1 DAY); "));' в случае, если дата является строкой, но не работает либо – Hearner

Смежные вопросы