возникла проблема при выписывание из БД данных. Я сохронил отдельно id товаров и их количество в таблицу (tbl_zakaz), теперь мне нужно выписать данные, но так чтобы каждому id писалось его количество...Я пытался создать 2 массива id товаров и их количество, но он мне всегда выписывает вместе все значения, подскажите пожалуйста, может существует какая функция, которая разобьет эти значения? Спасибо большое
Вот то что имеется:
2 таблицы: tbl_zakaz(в нее записываются данные о заказе) и tbl_products(здесь хранится описание товаров).
$id = isset($_GET['id'])?mysql_escape_string($_GET['id']):NULL;
$faktura = mysql_query("SELECT * FROM tbl_zakaz");
if(mysql_num_rows($faktura)>0)
{
while($r_f = mysql_fetch_assoc($faktura)){
echo 'Номер заказа: '.$r_f['id'].'<br>';
$product_f = mysql_query("SELECT * FROM tbl_products WHERE id IN(".$r_f['id_p'].")");
while($r = mysql_fetch_assoc($product_f)){
echo 'Название товара '.$r['name'].'<br /> Кол-во '.$r_f['mnozstvi'].'<br />';
}
}
}
чтобы было понятнее..он мне выписывает вот с этим кодом названия товаров нормально как надо потомучто я использую оператор IN а вот количество пишет просто все записанные значения. Еще раз спасибо за помощь
Спустя 19 минут, 48 секунд (9.03.2010 - 19:28) Rapp_colince написал(а):
Я правильно понимаю, что на выходе должна получиться таблица с полями:
1. Id товара
2. Имя товара
3. Количество заказов этого товара
Если так, то лучше все сделать одним запросом:
Здесь `tbl_zakaz`.`prodId` = это id продукта в таблице с заказами
1. Id товара
2. Имя товара
3. Количество заказов этого товара
Если так, то лучше все сделать одним запросом:
$sql = "
SELECT
`tbl_products`.`id` as `prodId`
`tbl_products`.`name` as `prodName`
(SELECT COUNT(*) FROM `tbl_zakaz` WHERE `tbl_zakaz`.`prodId` = `tbl_products`.`id`) as `zakazCount`
FROM `tbl__products`;";
Здесь `tbl_zakaz`.`prodId` = это id продукта в таблице с заказами
Спустя 38 минут, 11 секунд (9.03.2010 - 20:06) Dmitry написал(а):
дада, именно так, только чтобы все значения выписывались по порядку, т.е. у меня записано в таблице: id 10,11,12 и количество 2,5,1 и чтобы например id 10 соответствовало кол-во 2.
Почемуто не получается так написать, как вы посоветовали, пишет ошибку. Извиняюсь что сам не могу с этим разобраться, я просто такие запросы никогда не писал, поэтому не понимаю его(логику понимаю а как записано не очень
)
Почемуто не получается так написать, как вы посоветовали, пишет ошибку. Извиняюсь что сам не могу с этим разобраться, я просто такие запросы никогда не писал, поэтому не понимаю его(логику понимаю а как записано не очень

Спустя 53 минуты, 55 секунд (9.03.2010 - 21:00) Rapp_colince написал(а):
Логика запроса:
Из таблицы `tbl_products` достаю две ячейки (`id` и `name`) и называю из соответственно, `prodId` и `prodName`.
Этой строчкой мы выводим третье значение (количество заказов для продукта, который основной [первый] запрос просматривает).
При этом структура БД должна быть такая:
1. Таблица `tbl_prodicts` состоит из полей `id` (id продукта), `name` (название продукта)
2. Таблица `tbl_zakaz` состоит из полей `id` (id заказа), `prodId` - (id продукта)
Причем, эта реализация не нормальная, потому что у одного заказа может быть несколько товаров.
Соответственно, у таблицы `tbl_zakaz` должен быть только `id` и информацию о заказчике.
И должна быть третья таблица `tbl_zakaz_products`, которая содержит связь id заказа и id товара.
SELECT
`tbl_products`.`id` as `prodId`
`tbl_products`.`name` as `prodName`
Из таблицы `tbl_products` достаю две ячейки (`id` и `name`) и называю из соответственно, `prodId` и `prodName`.
(SELECT COUNT(*) FROM `tbl_zakaz` WHERE `tbl_zakaz`.`prodId` = `tbl_products`.`id`) as `zakazCount`
Этой строчкой мы выводим третье значение (количество заказов для продукта, который основной [первый] запрос просматривает).
При этом структура БД должна быть такая:
1. Таблица `tbl_prodicts` состоит из полей `id` (id продукта), `name` (название продукта)
2. Таблица `tbl_zakaz` состоит из полей `id` (id заказа), `prodId` - (id продукта)
Причем, эта реализация не нормальная, потому что у одного заказа может быть несколько товаров.
Соответственно, у таблицы `tbl_zakaz` должен быть только `id` и информацию о заказчике.
И должна быть третья таблица `tbl_zakaz_products`, которая содержит связь id заказа и id товара.