2015-07-24 3 views
0

У меня есть MySQL запрос:
MySQL два условия для двух таблиц

$query5 = mysql_query("SELECT * FROM `pages` WHERE (`id`='$switch' AND `rand`='$randID' AND `email`!='".$_SESSION['user']."') "); 

И второе:

$query5 = mysql_query("SELECT * FROM `pages_admin` WHERE (`pId`='$switch' AND `rand`='$randID' AND `admin`!='".$_SESSION['user']."') "); 

я использую время цикла для представления данных.

while($row = mysql_fetch_array($query5)) {} 

мне нужен один MySQL запрос вместо двух.

+0

Итак, вы хотите объединить два набора результатов? – user2027202827

+1

Ваш код уязвим для SQL-инъекции. –

+1

@ ШрейасЧаван прав. Если вы намерены использовать это в любом месте общедоступного, вы должны посмотреть на подготовленные заявления, используя что-то вроде mysqli. – user2027202827

ответ

0

Если эти таблицы связаны, вы можете ПРИСОЕДИНИТЬСЯ к ним, используя внешний ключ. Если я не ошибаюсь, этот pId в таблице pages_admin является внешним ключом к id на страницах таблицы, это правильно?

Если да, то вы могли бы сделать что-то вроде этого, чтобы вы запрашиваете:

"SELECT * FROM pages p 
LEFT JOIN admin_pages ap on p.id = ap.pId 
WHERE (`pId`=$switch AND `rand`=$randID AND `admin`!='{$_SESSION['user']}')" 

Обратите внимание, что я изменил синтаксис, вместо слияния строки вы можете использовать только один, содержащий все переменные, которые вам необходимы.

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