Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Умножение столбцов одним запросом
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
Привет знатоки MySQL! Передо мной стала такая вот задачка: Делаю интернет магазин, вся корзина построена на кукисах, в базу заносится уже готовый заказ. Заносится в таком виде:
Есть поля itmes_id, count где в itmes_id хранятся идентификаторы товаров в виде 1, 2, 3 и т.д., и в count хранится количество товаров в виде 2, 2, 4 и т.д., соответственно первая цифра относится к первому id, вторая ко второму и т.д. Так вот, как можно одним запросом умножить к примеру цену товара с таким id на количество, которое относится к этому товару?
Тоесть что бы вывести все товары мне нужно сделать запрос типа
SELECT title, price FROM goods WHERE id IN(1, 2, 3);
А вот как сделать, что бы сразу во время запроса количество умножалось на цену и выдавало мне сумму? Что то типа такого, но так естественно не работает, так, пишу для понимания:
SELECT title, price,(price * count)AS sum FROM goods WHERE id IN(1,2,3)
оно?
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
lamozavrik
Отправлено: 03 Февраля, 2012 - 21:13:50
Частый гость
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
Саныч, нет. В поле count количество лежит в виде строки: 2, 2, 4, а айди товаров в виде строки 1, 2, 3, так вот первая цифра count относится к первой цифре айди, вторая ко второй, третья к третьей и т.д
----- Ударим крепким сном по мукам совести!
Саныч
Отправлено: 03 Февраля, 2012 - 21:31:03
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Зачем такое извращенство?
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
lamozavrik
Отправлено: 03 Февраля, 2012 - 21:34:25
Частый гость
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
не знаю извращенство или нет, но никак не могу придумать, как оптималнее всего хранить заказы в БД (Добавление)
Просто как мне показалось, что это нормально, что у тебя есть заказ, в этом заказе хранятся все айди товаров через запятую, которые заказали и количество этих товаров тоже через запятую. Вот как вывести все товары с этими айди, я знаю
но вот как сделать, что бы цена товара с определенным айди умножалась на количество заказаного товара с этим же айди )))
----- Ударим крепким сном по мукам совести!
Саныч
Отправлено: 03 Февраля, 2012 - 21:42:41
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Помог: 62 раз(а)
Я думаю правильно, соответсвенно и лучше будет так:
0) таблица товаров (id, название и т.д.)
1) таблица заказов (id, дата, кто заказал, статус и т.д.)
2) таблица товаров в заказе (id заказа, id товара, количество)
----- Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
lamozavrik
Отправлено: 03 Февраля, 2012 - 21:46:10
Частый гость
Покинул форум
Сообщений всего: 161
Дата рег-ции: Дек. 2011
Помог: 4 раз(а)
Саныч, ну таблица товаров так и есть, а вот с заказами наверное всё таки сделаю на две таблицы. Спасибо ) (Добавление)
Хорошо, еще вопрос: Допустим клиент оформил заказ, я его записал в таблицу как id, дата, кто заказал, статус и т.д., а потом мне соответственно нужно добавить в таблицу товаров в заказе сами id заказа, id товара, количество. Так вот как мне узнать под каким id записался заказ в таблицу заказов, что бы потом записать этот id как id заказа в таблицу товаров в заказе?
Как всё запутано )))
----- Ударим крепким сном по мукам совести!
Саныч
Отправлено: 03 Февраля, 2012 - 21:58:51
Участник
Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010 Откуда: Украина, Запорожье
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.