2014-02-10 3 views
0
$today = CURDATE(); 
$result = mysqli_query($con,"SELECT * FROM Persons WHERE Day ='"$today"'"); 

Столбцы: Имя
День
Время
RegPHP MYSQL Результаты, где день сегодняшней даты

И выберите * от людей работает отлично.

+0

Есть ли записи в таблице 'Персоны ', которые должны отображаться? Пожалуйста, укажите схему вашей таблицы –

+0

Что насчет $ result = mysqli_query ($ con, "SELECT * FROM Person WHERE Day = '". $ Today. "'"); – AdRock

+0

Спасибо, что отсортировали его :) – himmerz

ответ

2

Вы должны иметь возможность просто указать вашу текущую дату в запросе (т. Е. Не нужно вычислять в PHP). Это также даст вам более последовательную обработку времени, если веб-сервер и сервер MySQL будут иметь разные часовые пояса.

Если Day является DateTime или использование временной метки поля следующим образом:

SELECT * FROM Persons WHERE Day LIKE CONCAT(CURRENT_DATE(),'%') 

Если Day является использование поля даты этого:

SELECT * FROM Persons WHERE Day = CURRENT_DATE() 
0
$today = CURDATE(); 
$result = mysqli_query($con,"SELECT * FROM Persons WHERE Day LIKE '$today'"); 
1

Если day является DateTime, а затем использовать:

SELECT * 
FROM Person 
WHERE Day >= CURRENT_DATE and Day < CURRENT_DATE + interval 1 day; 

Использование like для дат - это плохая практика, потому что для этого требуется преобразовать дату в строку. Это предотвращает использование индекса.

Если day не имеет компонент времени, выше будет работать, но вы можете упростить его:

SELECT * 
FROM Person 
WHERE Day = CURRENT_DATE; 

Вы также можете написать:

SELECT * 
FROM Person 
WHERE date(Day) = CURRENT_DATE ; 

(Скобки на CURRENT_DATE не являются обязательными.)

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