2012-04-11 2 views
0

Как часть моего приложения для электронной торговли, у меня есть эта интересная проблема, которую я пытаюсь решить.mysql select query to prepopulate dropdown fields

У меня есть две вещи.

  • Категория
  • Продукт

В реляционной базе данных смысле, категория может иметь более чем одну продукцию, и продукт может принадлежать только к категории.

Тогда у меня есть эта страница купона администратора электронной коммерции, где я хочу изменить детали купона, связанные с определенным продуктом и категорией.

На странице модификации, у меня есть следующие поля

купона Описание - тип TextField купона Цена - Тип TextField купона в процентах - Тип TextField Категория Название - Тип Dropdownfield Имя продукта - тип Dropdownfield

У меня есть следующий sql-запрос.

$sql = "SELECT cp_description, cp_discountprice, cp_discountpercent, pd_name, cat_name 
     FROM tbl_coupon inner join (tbl_product, tbl_category) on 
     (tbl_product.pd_id = tbl_coupon.pd_id AND  tbl_category.cat_id=tbl_product.cat_id) 
     WHERE cp_id = $cpId"; 

Что действительно интересно об этой проблеме в том, что я не мог включать pd_id и cat_id поля в запросе SQL, так что я могу манипулировать ими в другом коде SQL, который будет искать эти поля, чтобы получить правильный выбранный элемент в раскрывающемся поле при предварительном заполнении.

Я не могу использовать pd_name или cat_name в операторе выбора, потому что эти поля не «уникальные» это может вызвать проблемы.

Есть ли у кого-нибудь идеи, как лучше всего подойти к этой проблеме? Я думал, что ключевое слово отличное может сделать трюк ... Но это не так!

ответ

0

Не можете ли вы использовать такой запрос?

SELECT 
    cp.cp_description, cp.cp_discountprice, cp.cp_discountpercent, 
    p.pd_id, p.pd_name, 
    cat.cat_id, cat.cat_name 
FROM tbl_coupon cp 
INNER JOIN tbl_product p ON p.pd_id = cp.pd_id 
INNER JOIN tbl_category cat ON p.cat_id = cat.cat_id 
WHERE cp_id = $cpId 
+0

ОК. Спасибо за это. Я дам ему повод и дам вам знать, работает оно или нет. – awongCM

+0

Привет. Просто сообщив, что код работает ... Я знал, что есть какой-то базовый синтаксис SQL, который позволяет вам извлекать уникальные идентификаторы в запросе ... Не был уверен, что это было, пока вы не объяснили. Еще раз спасибо! – awongCM