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
Форумы портала PHP.SU :: Версия для печати :: serialize добавление записей
Форумы портала PHP.SU » » Работа с СУБД » serialize добавление записей

Страниц (1): [1]
 

1. Юсуф - 22 Сентября, 2012 - 13:01:37 - перейти к сообщению
Такс... Ребят есть интернет магазин , пользователь заказывает товар под логином и паролем, так вот при клике на товар "в корзину" то id-товара и кол-во товара уходят в таблицу БД zakaz, при помощи serialize.

теперь задача такая, как мне обновить данные в таблице?
допустим там уже есть

тетрадь - 10 штук
ручки 5 шт.

и хочу добавить папку 3 шт. то есть новую позицию, а как это сделать? как добавить кол-во того что уже есть в таблице я знаю но как продолжить уже существующую запись не знаю(
2. Alho - 22 Сентября, 2012 - 13:08:13 - перейти к сообщению
Я правильно понял что вы засовываете все товары в одну ячейку?

Если это так, то это неверное и медленное решение. Это реализуется с помощью таблицы со связью "многие-ко-многим". Т.е. просто для каждого пользователя+наименования товара создается своя запись.
3. Юсуф - 22 Сентября, 2012 - 13:12:16 - перейти к сообщению
ну как бы да! ну вот смотрите вот структура таблицы

|id| user | tovar | summa |
-------------------------------- --
id - это ясно что
user - это тот кто заказывает
tovar - список всех товаров которые он заказал то есть там только id товара и кол-во заказа
summa - общая сумма заказа

вы это имеете ввиду что долго и не хорошо?
4. Alho - 22 Сентября, 2012 - 13:20:57 - перейти к сообщению
Я бы сделал такую таблицу:
|id| user | idtovar | amount |
1 1 110 5
2 2 10 1
3 1 10 18

idtovar - id позиции
amount - заказанное количество
Название и цену не имеет смысла здесь хранить - получите это из таблицы товаров.
5. Юсуф - 22 Сентября, 2012 - 13:23:20 - перейти к сообщению
а если у него 200 позиций заказано и плюс еще 100 покупателей то это где то 30000 строк в таблице не многовато ли?
6. Мелкий - 22 Сентября, 2012 - 13:43:08 - перейти к сообщению
Alho пишет:
Название и цену не имеет смысла здесь хранить

Ещё как имеет. Цены имеют обыкновение меняться, а в истории должна отражаться цена на тот момент.

Юсуф пишет:
не многовато ли?

Вот лямов 100 записей - можно потихоньку начинать думать. Если вас пугают смехотворные 30тыс. - то до такого уровня эта разработка не доживёт, будет переписана раньше.
(Добавление)
И удобнее будет всё же отдельная таблица заказов - реквизиты, id заказа и прочее и отдельная таблица товаров в заказе - id_заказа, id_товара (PK на оба поля), количество, цена
7. Юсуф - 22 Сентября, 2012 - 14:23:00 - перейти к сообщению
спасибо ребят понял ваши советы, так и сделаю
8. Юсуф - 22 Сентября, 2012 - 16:41:32 - перейти к сообщению
создал вот такую структуру

таблица order_info (таблица с информацией заказа)

| ord_number | order_user | order_date | order_sum |
-------------------------------- -------------------------------- ---

ord_number - это номер заказа (AUTO_INCREMENT)
order_user - это Логин заказчика
order_date - дата заказа
order_sum - сумма заказа


таблица tovar (таблица где храниться весь товар)
| tov_id| tov_name| tov_count| tov_cena|
-------------------------------- -----------------
Тут особо нечего объяснять. далее


таблица order_connectivity (таблица связь многие ко многим)
| con_id | con_order | con_goods | con_amount | con_count |
-------------------------------- -------------------------------- ---------
con_id - (AUTO_INCREMENT)
con_order - номер заказа связь с таблицей order_info
con_goods - id товара связь с таблицей tovar
con_amount - кол-во заказанного товара
con_count - цена за товар


теперь хотелось бы знать как мне составить запрос к БД то есть отправить заказ в БД с помощью INSERT может кто примерно напишит?
9. Саныч - 22 Сентября, 2012 - 17:17:00 - перейти к сообщению
Юсуф, я бы так сделал. Схему базы прикрепил. Немного опишу таблицы.
Users - думаю понятно что.
Products - товары. title - название, price - цена, count - количество в наличии.
Basket - корзина товаров. Связи с пользователем и продуктом, и количесто в корзине.
Orders - заказы пользователей. id заказа, пользователь, дата заказа и его статус.
Order_products - продукты в заказе. Связи с заказом и продуктом, количество продукта и цена по которой он был заказан.

При добавлении товара в корзину, пишим в таблицу basket. Как только пользователь решится и оформит заказ, создаем заказ в таблице orders, добавляем товары в таблицу order_products, удаляем данные из таблицы basket. Плюс, уменьшаем значение count в таблице products. Это количество заказного товара пользователем.
Ну вот как-то так. Улыбка
10. Юсуф - 22 Сентября, 2012 - 17:29:44 - перейти к сообщению
тоже вариант, но я попробую сначала свой вариант протолкнуть посмотрим что из этого получится, если что то твой совет возьму за решение!

 

Powered by ExBB FM 1.0 RC1