Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Выборка из базы на основании результата выборки (https://javascript.ru/forum/server/35849-vyborka-iz-bazy-na-osnovanii-rezultata-vyborki.html)

djonA 24.02.2013 14:51

Выборка из базы на основании результата выборки
 
Подскажите, необходимо выполнить выборку из определенной таблицы базы данных по уже имеющемуся значению этой же таблицы:

выполняю выборку из базы данных из одной таблицы вот так:
$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 выборки?????

walik 24.02.2013 14:56

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.

djonA 24.02.2013 15:03

То есть вот так:
$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'];

djonA 24.02.2013 15:17

Чего та не получается

walik 24.02.2013 15:22

Цитата:

Сообщение от djonA
Чего та не получается

Ну как бы это не о чем не говорит))

Первым делом какая ошибка у вас выскакивает (если таковая имеется).
Во вторых упрощенный пример структуры двух таблиц было бы хорошо увидеть.

И на всякий случай спрошу, не забыли про:
Цитата:

Сообщение от walik
Только там где `SC_products`.`ID` - укажите правильное названия поля в котором хранится id.


djonA 24.02.2013 15:25

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`)

walik 24.02.2013 15:30

Попробуйте перед $result = mysql_fetch_array($query5);
поставить:
if (!$query5) {
die('Неверный запрос: ' . mysql_error());
}

Так как вполне возможно что ошибка в запросе самом

djonA 24.02.2013 15:32

Пишет Неверный запрос: Unknown column 'SC_products' in 'on clause'

djonA 24.02.2013 15:38

Т.е еще раз я выбираю из таблицы `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

walik 24.02.2013 15:48

Скорее всего, ошибка была в том что я опечатался. Там в запросе есть 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`

Цитата:

Сообщение от djonA
я выбираю из таблицы `SC_product_options_values` значение option_value_ru, productID и получаю занчение productID

Я вам предложил вариант, в котором, предполагается что все будет выполнено одним запросом (второго не надо будет)


Часовой пояс GMT +3, время: 12:11.