2013-06-21 3 views
0

У меня есть страница продукта и при нажатии на кнопку Добавить в корзинуSQL выбрать ГДЕ И

$pid = $_POST['pid']; 
$size= $_POST["length"]; 
$Category = $_POST['Category']; 

Он работает метод POST, отправляя тех выше. Из этой цены можно выбрать исходя из длины. Потому что категория - это выпадающее меню ... Я отправляю любую категорию, которую выбрал пользователь.

Ниже приведены примеры моих 3 таблиц и запроса. Надежда, что помогает Таблица: Продукт

Pid  Name 
    1  man 
    2  woman 
    3  child 

Таблица: Категория

CatID Name   Pid 
1  pen   1 
2  pen   1 
3  pencil  2 
3  red_pen  3 

Таблица active_product

ATpid size pid price 
1  12 1  10 
2  14 2  15 
3  16 3  20 
4  18 4  30 

Мой запрос, который я попробовал

SELECT Name, size, price 
FROM active_product, Product, Category 
WHERE Product.pid=1 
AND size=10 AND Name.Category=pen Limit 1 

Этот запрос не работает. Как я могу улучшить его, пожалуйста?

+1

Как это не работает? Вы получили сообщение об ошибке? Неожиданные результаты? – showdev

+0

Будьте более конкретными, чем «не работает» –

ответ

0

Я думаю, вы должны иметь это:

SELECT Product.Name, size, price 
FROM active_product, Product, Category 
WHERE Product.pid=1 
AND size=10 AND Category.Name="pen" Limit 1 

Имя не является таблицей.

+0

Рома Я пробовал, но я получаю # 1052 - Колонка ' Имя "в списке полей неоднозначно – Emily

+0

@ user2510447: Я рассмотрел это в первом предложении * в своем ответе. –

+0

, вы должны обновить свой запрос в своем вопросе, вы исправили «ручку»? – Brian

0

1) Вы забыли о кавычках

2) Вы должны описать имя из какой таблицы - вы используете.

SELECT Category.Name, size, price 
FROM active_product, Product, Category 
WHERE Product.pid=1 
AND size=10 AND Name.Category="pen" Limit 1 
+0

Я пробовал, но я получаю # 1052 - Столбец «Имя» в списке полей неоднозначен – Emily

+0

Спасибо @yAnTar за вашу помощь – Emily

0

У вас есть два столбца имени (один в product и один в category), но вы не укажете, какой из них вы хотите в списке столбцов. У вас нет таблицы под названием Name, поэтому в вашем предложении WHERE не может быть Name.Category, и если бы вам нужно было указать Name = 'pen' (см. ' вокруг значения).

Похоже, вы действительно должны искать сайт для учебников SQL, поскольку это действительно основные ошибки. Возможно, Google и Bing найдут для вас один. Кроме того, для дальнейшего использования, размещение здесь вещей с неопределенными заявлениями, такими как «это не работает», без объяснения того, что это означает, обычно вызывает закрытие вопроса.

+0

Спасибо за консультацию – Emily