Старый 22.11.2009, 21:06   #11
Мастер
 
Аватар для Vetas
 
Регистрация: 13.03.2008
Адрес: 127.0.0.1
Сообщений: 615
Вес репутации: 239
Vetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущее
По умолчанию

Цитата:
Сообщение от 10012003 Посмотреть сообщение
zakaz номера заказа, чей заказ и кто исполнитель
basket содержание заказа: id заказа и количество
records номер заказа и имя
А где тогда номера товаров?
Цитата:
Сообщение от 10012003 Посмотреть сообщение
id соответствует номеру заказа
Сорри, неправильно написал... я имею в виду "номер товара".
Далее, выбираем по порядку эти номера из таблицы, в которой эти номера хранятся, делаем запрос к "zakaz" (с учетом, если добавишь поле) и в массиве суммируем общее количество.
Vetas вне форума   Ответить с цитированием
Старый 22.11.2009, 21:19   #12
Мастер
 
Аватар для DNA
 
Регистрация: 23.09.2008
Адрес: СССР
Сообщений: 683
Вес репутации: 227
DNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущее
Отправить сообщение для DNA с помощью ICQ
По умолчанию

Цитата:
Сообщение от 10012003 Посмотреть сообщение
как организовать с помощью GROUP BY не знаю
"SELECT col_name1,..., col_nameX,SUM($sum) FROM tablename GROUP BY $group";
Где $sum - то, поле которое должно быть суммировано, $group - поле по которому будет группировка
DNA вне форума   Ответить с цитированием
Старый 22.11.2009, 21:33   #13
телочка на авке клевая?
 
Аватар для 10012003
 
Регистрация: 14.09.2008
Адрес: Замкадье.
Сообщений: 1,522
Вес репутации: 261
10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Vetas Посмотреть сообщение
и в массиве суммируем общее количество.
вот смотрите у меня 5 пользователей у них по 5 заказав в которых все товары одинаковы, но разное количество, если все подрят сумировать, то у каждого получиться одна и таже цифра, а они должны быть разными, а если учесть, что пользователей может быть 10000 то тогда какие ресурсы нужны???
так что создание еще одной таблицы думаю не подходит.

DNA,
ситуация такая 5 заказов товары разные, какие из них совпадут заранее не известно, так что я пока не понимаю по чему группировать и и что складывать, а что нет
10012003 вне форума   Ответить с цитированием
Старый 22.11.2009, 21:38   #14
Мастер
 
Аватар для Vetas
 
Регистрация: 13.03.2008
Адрес: 127.0.0.1
Сообщений: 615
Вес репутации: 239
Vetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущееVetas - прекрасное будущее
По умолчанию

Цитата:
Сообщение от 10012003 Посмотреть сообщение
так что создание еще одной таблицы думаю не подходит.
Не еще таблицы, а поля "номер товара" в таблицу "zakaz".
Vetas вне форума   Ответить с цитированием
Старый 22.11.2009, 21:48   #15
Специалист
 
Аватар для gobliin
 
Регистрация: 07.05.2008
Адрес: Н-ск
Сообщений: 254
Вес репутации: 208
gobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личностьgobliin - просто великолепная личность
Отправить сообщение для gobliin с помощью ICQ
По умолчанию

Цитата:
Сообщение от 10012003 Посмотреть сообщение
Добавлено через 2 минуты
gobliin, что то Вы не в ту степь пошли

все гораздо проще, нужно сложить значения при совпадении имен, какая разница что откуда берется
Как раз таки в ту степь понисло, или думаешь тут одни телепаты собрались? Если ER-модель базы не нормальная, то сложно будет получить нужные значения.

И ещё совет на будующее, не стоит так называть переменные, это не кошерно. Вместо zakaz красивее было бы писать order а в таблице basket поле zakaz красивее было бы назвать orderID.

таким образом можно было бы например, написать легко читаемый запрос:
select order.* from basket, orderID where basket.orderID=order.ID

Добавлено через 9 минут
Если не понимаешь о чем я, то попробую объяснить.
Надо формализовать задачу было. Типа не полениться написать, нечто вроде:

исходные данные
таблица заказов zakaz (поле1, поле2, поле3)
таблица карзины товаров basket (поле1, поле2, поле3)
таблица ? record (поле1, поле2, поле3)
....

таблица basket имеет zakaz (связаны по полю)
...


Необходимо посчитать количество товара .... .

А ты привел 10 строчек кода. Сказал "выводит А надо Б".

Надеюсь я понятно изложил свои мысли?

Последний раз редактировалось gobliin; 22.11.2009 в 21:48. Причина: Добавлено сообщение
gobliin вне форума   Ответить с цитированием
Старый 22.11.2009, 21:56   #16
Мастер
 
Аватар для DNA
 
Регистрация: 23.09.2008
Адрес: СССР
Сообщений: 683
Вес репутации: 227
DNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущее
Отправить сообщение для DNA с помощью ICQ
По умолчанию

Цитата:
Сообщение от 10012003 Посмотреть сообщение
DNA,
ситуация такая 5 заказов товары разные, какие из них совпадут заранее не известно, так что я пока не понимаю по чему группировать и и что складывать, а что нет
Цитата:
Сообщение от 10012003 Посмотреть сообщение
надо сделать что бы выводило номер товара и общее количество
"SELECT col_name1,..., col_nameX,SUM(поле количество товара) FROM tablename GROUP BY поле номер товара";

....
gobliin, +1
DNA вне форума   Ответить с цитированием
Старый 23.11.2009, 01:30   #17
телочка на авке клевая?
 
Аватар для 10012003
 
Регистрация: 14.09.2008
Адрес: Замкадье.
Сообщений: 1,522
Вес репутации: 261
10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее10012003 - прекрасное будущее
По умолчанию

попробую объяснить еще раз

Выбираю текущие заказы, текущего пользователя
PHP код:
<?
$select_zak 
mysql_query("SELECT * FROM zakaz WHERE pr = '$_SESSION[USER]' AND cat = '$catalog[id]' AND statys = '1' ");
while(
$zak mysql_fetch_assoc($select_zak)){
передаются номера заказов

Выбираю товары которые есть в закезе
PHP код:
$select_tovq mysql_query("SELECT * FROM basket WHERE zakaz = '$zak[id]'");
while(
$tovq mysql_fetch_assoc($select_tovq)){ 
получаем id товаров и их количество

теперь выводим вместо цифр наименования
PHP код:
$select_tovn mysql_query("SELECT * FROM records WHERE id = '$tovq[tovar]' ");
$tovn mysql_fetch_assoc($select_tovn);
?> 
вывод на экран
PHP код:
<?=$tovn[nomer]?> <?=$tovn[name]?>  <?=$tovn[kol]?> <br>
<? }} ?>
получается:

заказ 1

номер товара, имя товара и его количество, то есть

123 имя1 1шт
321 имя2 2шт
456 имя3 1шт

заказ 2

123 имя1 2шт
321 имя2 1шт
789 имя4 1шт
987 имя5 2шт

заказ 3

321 имя2 1шт

Хочу что бы был вывод:

123 имя1 3шт
321 имя2 4шт
456 имя3 1шт
789 имя4 1шт
987 имя5 1шт

количество заказов не ограниченно, количество товаров в заказе не ограничено, и соответственно заранее не известно, так же как и заранее не известны номера заказов.

требуется посчитать общее количество товара из выбранного массива заказов

ну честно не знаю как еще объяснить.

Добавлено через 2 минуты
Цитата:
Сообщение от DNA Посмотреть сообщение
SELECT col_name1,..., col_nameX,
насколько я понимаю здесь необходимо знать количество col_name

Последний раз редактировалось 10012003; 23.11.2009 в 01:30. Причина: Добавлено сообщение
10012003 вне форума   Ответить с цитированием
Старый 23.11.2009, 02:15   #18
Починяю примуса
 
Аватар для Atomic
 
Регистрация: 26.09.2008
Сообщений: 1,505
Вес репутации: 284
Atomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущееAtomic - прекрасное будущее
По умолчанию

SELECT таблица1.столбец, таблица2.столбец, таблица3.столбец
FROM таблица1, таблица2, таблица3
WHERE {условие}
AND {условие}
....

Цитата:
Хочу что бы был вывод:
123 имя1 3шт
321 имя2 4шт
456 имя3 1шт
789 имя4 1шт
987 имя5 1шт
while($goods=mysql_fetch_assoc($select)){
$good["num"][$goods["goods_id"]]=+$goods["num"];
$ArrayGoodsFromOrder[$goods["goods_id"]]=array("name"=>$goods["name"],"num"=>$good["num"][$goods["goods_id"]]);
}

foreach(
$ArrayGoodsFromOrder as $id=>$value) {
echo $id.'-'.
$ArrayGoodsFromOrder[$id]["name"].'-'.$ArrayGoodsFromOrder[$id]["num"];
}

не гарантирую правильность, пытаюсь донести основную мысль.


__________________
Починяю разнокалиберные примуса здесь.
Atomic вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите помогите вставить код в ShopScript Cat_N Вопросы по работе системы 3 22.01.2010 14:35
Как посчитать бэклинки? osrsoft Общие вопросы оптимизации 3 28.01.2009 11:49
Помогите правильно посчитать atotarho Вопросы по работе системы 2 06.11.2008 07:53
help! надо посчитать статистику по логу Sasa Курилка 0 03.10.2007 22:25


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