PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Юсуф
Отправлено: 22 Сентября, 2012 - 13:01:37
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Такс... Ребят есть интернет магазин , пользователь заказывает товар под логином и паролем, так вот при клике на товар "в корзину" то id-товара и кол-во товара уходят в таблицу БД zakaz, при помощи serialize.

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

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

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



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




Я правильно понял что вы засовываете все товары в одну ячейку?

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


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




ну как бы да! ну вот смотрите вот структура таблицы

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

вы это имеете ввиду что долго и не хорошо?
 
 Top
Alho
Отправлено: 22 Сентября, 2012 - 13:20:57
Post Id



Посетитель


Покинул форум
Сообщений всего: 322
Дата рег-ции: Апр. 2012  


Помог: 11 раз(а)




Я бы сделал такую таблицу:
|id| user | idtovar | amount |
1 1 110 5
2 2 10 1
3 1 10 18

idtovar - id позиции
amount - заказанное количество
Название и цену не имеет смысла здесь хранить - получите это из таблицы товаров.
 
 Top
Юсуф
Отправлено: 22 Сентября, 2012 - 13:23:20
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




а если у него 200 позиций заказано и плюс еще 100 покупателей то это где то 30000 строк в таблице не многовато ли?
 
 Top
Мелкий Супермодератор
Отправлено: 22 Сентября, 2012 - 13:43:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 617 раз(а)




Alho пишет:
Название и цену не имеет смысла здесь хранить

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

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

Вот лямов 100 записей - можно потихоньку начинать думать. Если вас пугают смехотворные 30тыс. - то до такого уровня эта разработка не доживёт, будет переписана раньше.
(Добавление)
И удобнее будет всё же отдельная таблица заказов - реквизиты, id заказа и прочее и отдельная таблица товаров в заказе - id_заказа, id_товара (PK на оба поля), количество, цена


-----
PostgreSQL DBA
 
 Top
Юсуф
Отправлено: 22 Сентября, 2012 - 14:23:00
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




спасибо ребят понял ваши советы, так и сделаю
 
 Top
Юсуф
Отправлено: 22 Сентября, 2012 - 16:41:32
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




создал вот такую структуру

таблица 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 может кто примерно напишит?
 
 Top
Саныч Модератор
Отправлено: 22 Сентября, 2012 - 17:17:00
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Юсуф, я бы так сделал. Схему базы прикрепил. Немного опишу таблицы.
Users - думаю понятно что.
Products - товары. title - название, price - цена, count - количество в наличии.
Basket - корзина товаров. Связи с пользователем и продуктом, и количесто в корзине.
Orders - заказы пользователей. id заказа, пользователь, дата заказа и его статус.
Order_products - продукты в заказе. Связи с заказом и продуктом, количество продукта и цена по которой он был заказан.

При добавлении товара в корзину, пишим в таблицу basket. Как только пользователь решится и оформит заказ, создаем заказ в таблице orders, добавляем товары в таблицу order_products, удаляем данные из таблицы basket. Плюс, уменьшаем значение count в таблице products. Это количество заказного товара пользователем.
Ну вот как-то так. Улыбка
Прикреплено изображение (Нажмите для увеличения)
123.png


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Юсуф
Отправлено: 22 Сентября, 2012 - 17:29:44
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




тоже вариант, но я попробую сначала свой вариант протолкнуть посмотрим что из этого получится, если что то твой совет возьму за решение!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB