выборка из нескольких таблиц

KorP

Новичок
выборка из нескольких таблиц

нужно делать выборку из трёх таблиц, в первой таблице делаю выборку по слову и получаю несколько ID (с этим всё в порядке, ID получаются нормально), далее, из второй таблицы нужны выбрать все строки, где есть эти ID
пишу:
PHP:
SELECT name FROM SS_products WHERE categoryID='$categoryID'"
вот...и не работает...видимо не работает из-за того, что этих ID несколько...как быть в данной ситуации?
 

crocodile2u

http://vbolshov.org.ru
Все чаще и чаще приходится писать одно и то же...
Задавайте вопросы так, чтобы на них могли ответить. Если проблема с запросом, то приводите запрос, а не строку где здесь - инструкции SQL, а там - инструкции PHP. Короче, перед выполнением запроса echo "SELECT ...."; Вывод - в студию.
 

KorP

Новичок
я не могу понять в чём именно проблема...приведу весь код выборки из 2-й таблицы
PHP:
     $query = "SELECT name, Price, in_stock, product_code, default_picture FROM SS_products WHERE categoryID='$categoryID'";
     $result = MYSQL_QUERY($query);
     $number = MYSQL_NUMROWS($result);
     $i = 0;
     if ($number == 0){
     echo "<center><p>Нет товаров</center>";
     } else {
     while ($row=mysql_fetch_array($result)) {
     echo "".$row['name']."<BR>";
     echo "".$row['Price']."<BR>";
     echo "".$row['in_stock']."<BR>";
     echo "".$row['product_code']."<BR>";
     echo "".$row['default_picture']."<BR>";
     }
     }
а скрипт выводит, что нет товаров, хотя они есть 100% в базе! и ID первый запрос выводит правильные - проверял
 

antson

Новичок
Партнер клуба
KorP
ты не понял просьбы.
если второй строкой вставить
echo $query;
твоя проблема стала бы очевидной.
Включаю режим телепатии у тебя
$categoryID равняется чемуто типа "1,2,3,15"
В таком случае читай в мане про select ... where categoryID
IN (список значений)

Хотя проще сделать
Select * from t1,t2 where t1.category = t2.categoryID and условия по таблице t1
 

KorP

Новичок
да, echo $query; и я всё понял, теперь несколько другой вопрос...выборка из первой таблицы происходит оке, выводятся значения так:
PHP:
     while ($row=mysql_fetch_array($result)) {
     echo "ID".$row['categoryID']."<BR>";
     }
и просто в выборку уже из следующей таблицы не передаются значения categoryID...а как бы их туда запихнуть?

Автор оригинала: antson
Хотя проще сделать
Select * from t1,t2 where t1.category = t2.categoryID and условия по таблице t1
написал вот так
PHP:
$query = "SELECT * FROM SS_categories, SS_products WHERE SS_categories.categoryID=SS_products.categoryID and name='$name'";
значения SS_categories.categoryID и SS_products.categoryID не присваиваются
 

kruglov

Новичок
PHP:
"select * from SS_products left join SS_categories on SS_categories.categoryID=SS_products.categoryID and name='$name'"
 

Serguitar

Новичок->продвинутый
antson
Чел просто не понимает, что результат выборки айди есть массив. Он же тупо подставляет массив в запрос, отсюда никакого результата.
KorP
На стадии разработки возбми себе в правило, что если что-то не работает, значит этому есть строгое объяснение в виде ошибки, которую обязательно нужно выводить, чтобы понять в чем дело.
 

KorP

Новичок
Serguitar, да я понят что есть ошибка, и я понял в чём она -> $row['categoryID'] выводит массив записей из базы, вопрос то в другом, как сделать, что бы эти данные подставлялись в следующий запрос!

-~{}~ 28.09.05 15:34:

товарищи, помогите полиз пожалуйста...:/
 
Сверху