2010-07-31 2 views
0

Я написал простую форму поиска mysql, которая ищет между двумя датами. Этот запрос работает идеально:"LIKE" в mysql

$sql = "SELECT * FROM table WHERE dateStarted like '%$checkin%' 
AND dateEnded like '%$checkout%'"; 

Но с

$sql2 = "SELECT * FROM table WHERE dateStarted = $checkin 
AND dateEnded = $checkout"; 

Существует нет никакого результата? В чем разница между двумя sql?

Edit:

$checkin and $checkout are date (16-07-2010) 

Заранее спасибо

+0

1) Какой тип данных вы используете для dateStarted? 2) Что содержит переменные $ checkin и $ checkout? –

+0

$ checkin и $ checkout - дата (16-07-2010) – TheNone

+1

Вы должны написать дату в правильном формате: ГГГГ-ММ-ДД. – 2010-07-31 17:54:17

ответ

4

$ Checkin и $ фотографии являются дата (16-07-2010)

Попробуйте поместить кавычки в запросе:

$sql2 = "SELECT * FROM table WHERE dateStarted = '$checkin' 
     AND dateEnded = '$checkout'"; 
+0

да цитаты, даты не номера! Спасибо – TheNone

+0

@phpExe: Добро пожаловать ... – Sarfraz

2

Один соответствует значению переменных $ фиксирования, а другое что-нибудь содержащего Значения переменных $ оформленных совпадает.

Так что если $ checkin является foo, то первый будет соответствовать «foo» или «something foosomething», а второй будет соответствовать только «foo».

-2

"как" для текста и «= "для чисел и т. д.

+1

Не так. Изучите MySQL, прежде чем делать такие комментарии. –

+0

Я только что повторил слова своего учителя ... его не только о mysql его о дыре думают, как БД. Да, вы можете искать номера с «как», но это не понятно ... –