Выборка из базы на основании результата выборки
Подскажите, необходимо выполнить выборку из определенной таблицы базы данных по уже имеющемуся значению этой же таблицы:
выполняю выборку из базы данных из одной таблицы вот так: $dbl = mysql_connect('база','логин','пароль'); mysql_select_db('база',$dbl); $query5 = mysql_query("SELECT option_value_ru, productID FROM `SC_product_options_values` ",$dbl); $result = mysql_fetch_array($query5); echo $result['productID']; выводится productID, теперь мне надо выполнить выборку из другой таблицы этой же базы, вывести значение price, по уже имеющемуся productID. Пробовал вот так: $query5 = mysql_query("SELECT price FROM `SC_products`",$dbl); $result = mysql_fetch_array($query5); echo $result['price']; оно выводит значение но не могу их синхронизировал, что бы вторая выборка производилась на основе значения 1 выборки????? |
SELECT
`SC_product_options_values`.`option_value_ru`, `SC_product_options_values`.`productID`, `SC_products`.`price` FROM `SC_product_options_values` LEEFT JOIN `SC_products` ON `SC_products`.`ID` = `SC_product_options_values`.`productID` Как то так. Только там где `SC_products`.`ID` - укажите правильное названия поля в котором хранится id. |
То есть вот так:
$query5 = mysql_query("SELECT `SC_product_options_values`.`option_value_ru`, `SC_product_options_values`.`productID`,`SC_products`.`price` FROM `SC_product_options_values` LEEFT JOIN `SC_products` ON `SC_products`.`ID` = `SC_product_options_values`.`productID`",$dbl); $result = mysql_fetch_array($query5); echo $result['price']; |
Чего та не получается
|
Цитата:
Первым делом какая ошибка у вас выскакивает (если таковая имеется). Во вторых упрощенный пример структуры двух таблиц было бы хорошо увидеть. И на всякий случай спрошу, не забыли про: Цитата:
|
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /poisk.php on line 15
т.е вот тут $result = mysql_fetch_array($query5); выскакивает вот такое Вот структура таблицы: таблица `SC_products` (`productID`, `categoryID`, `customers_rating`, `Price`, `in_stock`) таблица `SC_product_options_values` (`optionID`, `productID`, `option_type`, `option_show_times`, `variantID`, `option_value_ru`) |
Попробуйте перед $result = mysql_fetch_array($query5);
поставить: if (!$query5) { die('Неверный запрос: ' . mysql_error()); } Так как вполне возможно что ошибка в запросе самом |
Пишет Неверный запрос: Unknown column 'SC_products' in 'on clause'
|
Т.е еще раз я выбираю из таблицы `SC_product_options_values` значение option_value_ru, productID и получаю занчение productID.
Кстати выборка запускается через <form method="post" action="poisk.php"> <input type="text" name="option_value_ru"> <input type="submit" value="Отправить"> </form> получается productID - скажем 11111 Теперь мне надо вывести price из другой таблицы: `SC_products` для товара с productID из 1 выборки т.е с ID - 11111 |
Скорее всего, ошибка была в том что я опечатался. Там в запросе есть LEEFT . Одну букву Е надо убрать.
Кроме того не забудте поменять `SC_products`.`ID` на `SC_products`.`productID` Короче запрос должен быть таким: SELECT `SC_product_options_values`.`option_value_ru`, `SC_product_options_values`.`productID`, `SC_products`.`price` FROM `SC_product_options_values` LEFT JOIN `SC_products` ON `SC_products`.`productID` = `SC_product_options_values`.`productID` Цитата:
|
Часовой пояс GMT +3, время: 12:11. |