Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 5

Корзина на PHP

01.09.2020, 20:56. Показов 689. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Учусь делать корзину с помощью localstorage, где id и колличество товара передается на сервер через ajax. Подскажите, пожалуйста, как работать дальше с этими данными на сервере.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2020, 20:56
Ответы с готовыми решениями:

корзина PHP MySQL
Нужно написать корзину для покупки книг. Можна пример либо сылку на толковую корзинуё Уже столько перелистал а толку 0.

Корзина интернет магазина PHP массивы + сессии
Всем добрый день. Помогите пожалуйста разобраться с массивом внутри массива в сессии. Задачи: Проверить на существование массив...

php корзина
Здравствуйте. Очень нужна помощь. Пишу для дипломной работы подобие интернет магазина. Так вот сделал сам сайт, и вывод товаров из бд....

9
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
02.09.2020, 09:31
Например, собирать в "заказ", сохраняя в базе данных.
1
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 5
02.09.2020, 09:37  [ТС]
Создать таблицу в базе и туда все сохранить? А как вывести корзину?
0
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
02.09.2020, 11:39
Как вы используете localstorage? Ведь можно из него выводить.

Что касается PHP, то это основы. Но нужно выполнить много рутинных действий, поэтому лучше использовать заготовки, например: https://gency.ru/comment/130 (это пример вывода публичного списка, поэтому авторизации там нет).

Также нужно знать основы проектирования баз данных.

Если все перечисленное выше для вас в новинку, сделайте корзину на клиенте с сохранением готового заказа в файле на сервере и его отправкой по почте. Для начала пойдет. Если же нужно сделать основательно, начинайте осваивать все необходимое и задавайте более конкретные вопросы.
1
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 5
02.09.2020, 12:00  [ТС]
С помощью ajax на php передаю id и колличество, записываю все это в отдельную таблицу, потом пишу функцию, которая выводит товары соответствующие id в новой таблице, при этом новую таблицу постоянно обновляю. Все вроде работает, но мне кажется, что этот способ не совсем верный
0
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
02.09.2020, 12:09
Про пользователей забыли. На сервере хранятся "корзины" сразу всех пользователей.
1
1152 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
02.09.2020, 12:11
Цитата Сообщение от Галина2000 Посмотреть сообщение
но мне кажется, что этот способ не совсем верный
это один из способов, и он вполне себе "верный" )

Таблица временной корзины (так называемая тележка покупателя) состоит из полей: id, id_user(user_session_id), id_product, count_product и туда бросаем товары.

А покупателю выводим только те товары которые соответствуют его id. То есть выбираем из таблицы только те товары у которых id_user равен $_SESSION['id_user']. Ну это может быть как сессия так и кука. Это уже как вам удобней.

А после оформления заказа, записывайте данные в другую таблицу и там уже добавляются адрес, статус и т.п. А из временной корзины удаляете все данные по id_user.
1
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
02.09.2020, 12:26
К предыдущему сообщению. Т.е. корзина отдельного пользователя строится из выборки по id пользователя.

Добавлено через 14 минут
Цитата Сообщение от sasha0012 Посмотреть сообщение
состоит из полей: id
Чтобы "запас прочности" этой таблицы был безграничный по времени, можно использовать составной ключ (пользователь, товар) с инкрементом счетчика при ошибке дублирующегося ключа.
1
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 5
05.09.2020, 21:58  [ТС]
Вы, наверное, не совсем поняли, что я имела ввиду
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
if (isset($_POST) AND ($_POST)!=NULL){ 
$k=$_POST; 
foreach($k as $key => $value){ 
 echo ($k); 
  $conn = connect(); 
 $sql = "INSERT INTO cartId (cartId, count) VALUES('".$key."', '".$value."')"; 
 if (mysqli_query($conn, $sql)) { 
 
 } else { 
 echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
 } 
 close($conn); 
}} 
else{ 
 echo ('1'); 
}
function deleteCart($conn){ 
 $sql="DELETE FROM cartId"; 
 if(mysqli_query($conn, $sql)){ 
  return true; 
 } 
 else{ 
  return "Error deleting record".mysqli_error($conn); 
 } 
  
}
function showCart($conn){ 
 $offset = 0; 
 if (isset($_GET['page']) AND trim($_GET['page'])!=''){ 
 $offset = trim($_GET['page']); 
 } 
 $sql = "SELECT * FROM goods, cartId WHERE goods.id=cartId.cartId"; 
 $result = mysqli_query($conn, $sql); 
 // }//here 
 $a = array(); 
 if (mysqli_num_rows($result) > 0) { 
 while($row = mysqli_fetch_assoc($result)) { 
 $a[] = $row; 
 } 
} 
 return $a; 
  
}
$showCart=showCart($conn); 
$del = deleteCart($conn);
0
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
06.09.2020, 12:52

Не по теме:

Цитата Сообщение от sasha0012 Посмотреть сообщение
Таблица временной корзины (так называемая тележка покупателя) состоит из полей: id, id_user(user_session_id), id_product, count_product и туда бросаем товары.
А не проще ли одна таблица с со всеми полями, с адресами, телефонами, а вместо так называемое "временной" поле, пусть будет status, где выставляем статус заказа. 0 - в корзине. 1, оплатил, 2, отправлен, 3 отменен. Все в нее и записываем выше перечисленное. Но каретка - это одно, а еще должна быть таблица с платежами, которая так же завязана вместе с этой таблицей корзины по id товара (массив), или же наоборот, по id платежа который будет выставлен каждому из товаров которые были оплачены. ИМХО;)


Цитата Сообщение от Галина2000 Посмотреть сообщение
колличество товара передается на сервер через ajax. Подскажите, пожалуйста, как работать дальше с этими данными на сервере.
Да, верно, только не в цикле записываете, а собираете одну переменную в цикле, после чего ее вставляете с помощью INSERT INTO за один раз, тем самым у Вас будет всего один запрос в базу данных. Для начала только необходимо узнать кол-во данных, чтобы правильно составить запрос. В итоге будет так
SQL
1
INSERT INTO cartId (cartId, COUNT) VALUES ('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."')
То есть
SQL
1
('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."'),('".$key."', '".$value."')
это должна содержать переменная из цикла. $_POST в первой строчке проверяйте с помощью empty.
И сам $_POST у Вас ведь отправляет AJAX, и Вы должны видеть, что данные в базу записываются, если все хорошо, разумеется.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.09.2020, 12:52
Помогаю со студенческими работами здесь

Корзина на PHP И MySQL
Проблема следующая - при добавлении в корзину товара счетчик обновляется, в том числе и в базе, а таблица &quot;trash&quot; нет, запись не...

Корзина товаров PHP ! :cry:
Я делаю интернет магазин - не получается сделать корзину : Сохранять то что в корзине в сессиях не получится (по крайней мере у меня) в...

Простая корзина товаров PHP + mysql
Здравствуйте. Прошу помощи в создании очень простой корзины товаров. Есть вывод товаров с базы данных, как сделать корзину товаров. ...

Корзина для интернет-магазина на php и сессиях
Здравствуйте, необходимо разработать корзину товаров для интернет магазина , скажем у меня на сайте есть каталог товаров , у каждого товара...

Корзина (MySQL + PHP) самая надоедлевая тема)))
Здравствуйте. Прошу помощи в таком вопросе, есть корзина PHP в которую добавляются товары. Таблицу товаров получаю из MySQL которая имеет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru