2016-04-10 4 views
0

Я пытаюсь добавить раздел «Сопутствующие товары» ниже моего продукта. Я могу только заставить это работать, если Я использую два отдельных SELECT. Я пытаюсь их объединить, но не могу заставить его работать.MySQL 1 Table, 1 Select, Multiple Wheres

же таблица в MySQL -

<?php 
//select items from db 
$items = mysql_query 
    ("SELECT * FROM table WHERE (myinvno='dg300') 
    OR (action='alive' AND cate='dogs' 
    ORDER BY productNo ASC LIMIT 0, 4)"); 

or die(mysql_error()); 
while($item = mysql_fetch_array($items)) 
{ 
?> 

Эта часть для раздела Сопутствующие товары:

ИЛИ (действие = 'живой' И Cate = 'собак ORDER BY productNo ASC LIMIT 0, 4) ");

Спасибо ~

+2

Вы опубликовали только один SELECT. Кроме того, что именно ваш желаемый результат? Как связаны два продукта? – kero

+0

После того, как вся основная информация о продукте предоставлена ​​на странице, у меня будет раздел связанных продуктов. 1 строка сетки из 4 "связанных" продуктов, которые относятся к одной категории ...... Продукты связаны «кате». Спасибо. – acvintage

ответ

0

Правильный синтаксис будет выглядеть следующим образом:

$items = mysql_query(" 
SELECT * 
FROM table 
WHERE (myinvno = 'dg300') OR 
     (action = 'alive' AND cate = 'dogs') 
ORDER BY productNo ASC 
LIMIT 0, 4" 
        ); 

Вы отсутствовали закрывающий родителя после 'dogs'.

EDIT:

Хммм. , , Интересно, если это то, что вы хотите:

SELECT * 
FROM table 
WHERE (myinvno = 'dg300') 
UNION ALL 
(SELECT * 
FROM table 
WHERE (myinvno <> 'dg300') AND 
     (action = 'alive' AND cate = 'dogs') 
ORDER BY productNo ASC 
LIMIT 0, 4 
); 

Это получает все строки, которые соответствуют первому условию плюс более, что соответствует второй четыре.

+0

Спасибо. Это не сработало. – acvintage

+0

Есть ли другой способ, которым я должен попробовать это, все еще работая с 1 столом? – acvintage

+0

Хорошо, я только что увидел ваше «редактирование» и попробую это сейчас. Вернусь ... – acvintage

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