[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсобите пожалуйста исправить запрос
Sadonn
Здравствуйте!
Помогите пожалуйста правильно составить запрос....
Ниже привел запрос который по идее должен работать при таком условии:
в заказе указано одно изделие и к этому изделию привязан состав.... НО ВОТ вопрос! Каким образом сделать, если в заказе несколько изделий и каждое изделие содержит состав????

//Выбираем все записи из tovar , которые относятся к заказу
$res_tov = mysql_query("SELECT * FROM tovar
WHERE id_order ="
.$id_order."");
$row_tovar = mysql_fetch_assoc($res_tov);
//получаем все записи о составе
$res_sost = mysql_query("SELECT * FROM sost
WHERE id_tovar ="
.$row_tovar['id_tovar']."");




Спустя 15 минут, 22 секунды (6.08.2010 - 09:22) Sadonn написал(а):
я что-то уже запутался ((( как Вы считаете, может так попробовать???:

$row_tovar = mysql_fetch_assoc($res_tov)
$array = array ($row_tovar['id_tovar']);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
$id_tovar = $array[i];
}
//получаем все записи о составе
$res_sost = mysql_query("SELECT * FROM sost
WHERE id_tovar ="
.$id_tovar."");

Спустя 11 минут, 57 секунд (6.08.2010 - 09:34) Nord написал(а):
Попробуй так:


//
// Таблица tovar Таблица sost
//
// id_tovar | id_order id_sost | id_tovar
// ------------------- ------------------
// 1 | 1 1 | 1
// 2 | 1 2 | 1
// 3 | 1 3 | 2
// 4 | 2 4 | 3
// 5 | 2 5 | 3
// 6 | 4
// 7 | 5
//

$res_sost = mysql_query("SELECT * FROM tovar INNER JOIN sost ON tovar.id_tovar = sost.id_tovar WHERE tovar.id_order ='".$id_order."' ORDER BY tovar.id_tovar");
while ($assoc = mysql_fetch_assoc($res_sost)){
echo $assoc['id_tovar'] . ' - ' . $assoc['id_sost'] . "\n";
}
// $id_order == 1:
// 1 - 1
// 1 - 2
// 2 - 3
// 3 - 4
// 3 - 5
//


Спустя 5 минут, 10 секунд (6.08.2010 - 09:39) Michael написал(а):
Лучше как выше подсказали одним запросом выбрать, ну а если делать как ты, то такой принцип:
$res_tov = mysql_query("SELECT * FROM tovar
WHERE id_order ="
.$id_order."");
$arr_id = array();
while ($row = mysql_fetch_assoc($res_tov)) {
$arr_id[] = $row['id_tovar'];
}
$str_id = implode(',', $arr_id);
//получаем все записи о составе
$res_sost = mysql_query("SELECT * FROM sost
WHERE id_tovar IN ("
.$str_id.")");

Спустя 1 час, 28 минут, 37 секунд (6.08.2010 - 11:08) Sadonn написал(а):
состав выводиться, только обьедененный т.е. в таблице под изделием 1 выводится состав из 1,2,3 изделия.....

// изделие 1
// состав 1
// состав 2.1
// состав 2.2
// состав 2.3
// состав 3.1
// состав 3.2
// изделие2
// изделие3

каким образом реализовать вывод на эран в таком формате:

// изделие 1
// состав 1
// изделие2
// состав 2.1
// состав 2.2
// состав 2.3
// изделие3
// состав 3.1
// состав 3.2

Спустя 11 часов, 12 минут, 50 секунд (6.08.2010 - 22:21) Nord написал(а):
Ну, я для этого добавил сортировку по id_tovar.
Как только $assoc['id_tovar'] поменяется, выводим его а дальше идет его состав

Спустя 4 дня, 10 часов, 44 минуты, 53 секунды (11.08.2010 - 09:06) Guest написал(а):
Sadonn
Как решил проблему с сортировкой отпишись, очень надо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.