2014-10-27 3 views
0

У меня есть таблица MySQL, как это:Searching MySQL с Now() всегда возвращает истину

| rsid | rsuser | rsintime   | rsouttime  | rsroom | 
| ---- | ------- | ---------------- | ---------------- | ------ | 
| 1 | Nick S | 10/14/2014 11:17 | 10/14/2014 12:18 | 1 | 
| 2 | Mike G | 10/15/2014 10:18 | 10/15/2014 11:19 | 1 | 
| 3 | Chuck M | 10/14/2014 21:56 | 10/14/2014 22:56 | 1 | 
| 4 | Jake B | 10/26/2014 22:14 | 10/26/2014 23:15 | 1 | 

Мой PHP код является:

<?php 
$con=mysqli_connect("0.0.0.0","roomapp","hi","roomapp"); 
$testschedulesql = "SELECT (NOW() > rsintime AND NOW() < rsouttime) as res_rm from raRmSchedule"; 
$testscheduleqry = mysqli_query($con, $testschedulesql); 
$testschedule = mysqli_num_rows($testscheduleqry); 
$testscheduletext = mysqli_fetch_array($testscheduleqry); 
echo $testschedule; 
if($testschedule > 0){ 
    echo 'Busy'; 
} 
else{ 
    echo 'Not'; 
} 
?> 

Однако $ testschedule всегда возвращает общее количество строк. Я хочу, чтобы он возвращал только строки, в которых текущее время находится в пределах времени ввода/вывода. Что я делаю не так?

+2

Каковы типы данных 'rsintime' и' rsouttime'? Если они не являются типом данных даты и времени, вы должны исправить эту таблицу. –

+0

Это дата и время. –

ответ

2

Вам нужен where пункт:

SELECT rm.* 
from raRmSchedule 
WHERE (NOW() > rsintime AND NOW() < rsouttime) 

Для того, чтобы подсчитать количество строк:

SELECT COUNT(*) 
from raRmSchedule 
WHERE (NOW() > rsintime AND NOW() < rsouttime) 

Это возвращает одну строку с одной колонкой. Это будет 0, если совпадений нет.

Ваша версия возвращает одну строку для каждой строки таблицы. Будет один столбец со значением 0 или 1, в зависимости от соответствия условия.

0

Конечно, это даст вам все строки, поскольку то, что вы выбираете, является логическим значением выражения.

Я думаю, что вы хотите предоставить запрос предложение WHERE, чтобы отфильтровать время, в котором вы нуждаетесь.

Что-то вроде Выберите * из raRMSchedule, где (сейчас()> rsintime и now() < rsouttime).

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