2015-07-27 4 views
1

Каков правильный синтаксис для объединения этих запросов mysql?Как объединить два отдельных запроса mysql

$reserved = mysql_query("Select * from reservations where $timestamp >= ReservationStart AND $timestamp <= ReservationEnd"); 

и

$reserved2 = mysql_query("Select * from reservations where $ReservationEnd >= ReservationStart AND $ReservationEnd <= ReservationEnd"); 

Я хотел бы забронировать номер для удовлетворения обоих этих критериев, но я совершенно новой для использования MySQL (и я знаю, что это не рекомендуется, но с целью того, что я используя это проще), поэтому я не уверен, как свести эти два вместе.

+0

Как вы хотите, чтобы они вместе взятые? Вы хотите, чтобы оговорки отвечали обоим критериям (объединить два условия с «И») или соответствовать любым критериям (объединить их с «OR»)? – Barmar

+0

Я бы хотел, чтобы бронирование соответствовало обоим критериям: – Blackman123

+2

** ВНИМАНИЕ **: Если вы просто изучаете PHP, пожалуйста, не изучайте устаревший интерфейс 'mysql_query'. Это ужасно и удаляется в будущих версиях PHP. Современная замена, такая как [PDO, не трудно учиться] (http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/). Руководство, подобное [PHP The Right Way] (http://www.phptherightway.com/), может помочь объяснить лучшие практики. Всегда будьте абсолютно уверены * ваши пользовательские параметры [правильно экранированы] (http://bobby-tables.com/php), или у вас будут серьезные [ошибки SQL-инъекций] (http://bobby-tables.com/). – tadman

ответ

0

Я нашел причину, по которой запрос не работал.

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

$reserved = mysql_query("Select * from reservations where '$timestamp' BETWEEN ReservationStart AND ReservationEnd AND '$ReservationEnd' BETWEEN ReservationStart AND ReservationEnd 
0

Объединение WHERE статей с AND. Вы также можете использовать оператор BETWEEN вместо тестирования как >=, так и <=.

$reserved = mysql_query("Select * 
    from reservations 
    where $timestamp BETWEEN ReservationStart AND ReservationEnd 
    AND $ReservationEnd BETWEEN ReservationStart AND ReservationEnd") or die(mysql_error()); 
Смежные вопросы