Как отфильтровать по дате в MySQL и PHP?

В своей книге посещений я пытаюсь сделать так, чтобы люди могли делать только один пост за один день, но я не знаю, как это происходит. Вот код:

<?php
$user = $username;

$timestamp = time();
$date = date("Y.m.d", $timestamp);

// Look if the user has written something..
$sql="SELECT user, date FROM book WHERE user='$user' AND date=???";
$qry=mysql_query($sql);
$num_rows = mysql_num_rows($qry);
mysql_query($sql);

if($num_rows > 0) {
?>

Today you have written.

<?php
} else {
?>

Action....

<?php } ?>

Я уверен в том что $date не может быть в «???» так как $date текущая дата Мне нужна дата записи в базе данных.

2

Решение

Вы должны установить дату последних 24 часов, а затем установить условие больше, чем здесь, если он возвращает записи, чтобы пользователь был записан, а если записей нет, значит, он / она ничего не пишет за последние 24 часа , 86400 — количество секунд в одном дне.

$datelimit = date("Y-m-d h:i:s", time()-86400);
$sql="SELECT user, date FROM book WHERE user='$user' AND date >'$datelimit'";
0

Другие решения

Вам нужно что-то вроде этого:

SELECT user, date FROM book WHERE user='$user' AND date= CURDATE();

MySql: функции даты и времени

2

так просто!

[написание книги]

//...
mysql_query(sprintf("INSERT INTO book(user,date,text) VALUES('%s',%d,'%s');",$username,mktime(0,0,0),$text);
[чтение книг]

<?php
$user = $username;

$sql="SELECT user, date FROM book WHERE user='$user' AND date=".mktime(0,0,0);
$qry=mysql_query($sql);
$num_rows = mysql_num_rows($qry);

if($num_rows > 0) {
?>

Today you have writed.

<?php
} else {
?>

Action....

<?php } ?>
0
По вопросам рекламы [email protected]