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 :: Помогите с корзиной для интернет магазина

 PHP.SU

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


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

> Без описания
dermff
Отправлено: 22 Января, 2013 - 00:54:15
Post Id


Гость


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


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




Доброй ночи! Есть тут щас кто не спит?) Помогите пожалуйста с написанием корзины для интернет магазина.. Есть форма ввода колличества товара и ссылка купить товар. как сделать проверку если id товара уже добавлен в сессию, то повторно не добавлялся?

И суть в том, что необходимо сделать так, чтобы можно было несколько разных товаров с разными id хранить в корзине.

Сам код:

PHP:
скопировать код в буфер обмена
  1. $id = intval($_GET['id']); //id товара
  2. $count = $_POST['count']; //колличество товара
  3.  
  4. if (!isset($_SESSION['basket'])) {
  5. $_SESSION['basket'] = array();
  6. }
  7.  
  8.  
  9. if(isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id`='".intval($_GET['id'])."'"), 0) == 1) {
  10. $_SESSION['basket'][]=$_GET['id'];
  11. }
  12.  
  13. //$sql = "SELECT * FROM `tovar` WHERE `id` = IN (".implode(',', $_SESSION['basket']).")";
  14. $sql = "SELECT * FROM `tovar` WHERE `id` IN (".$_SESSION['basket'][0].")";
  15.  
  16. $result=mysql_query($sql);
  17.  
  18. while($res = mysql_fetch_assoc($result))
  19. {
  20. echo "</br></br><h1>".$res['price']."</h1>";
  21. }

(Отредактировано автором: 22 Января, 2013 - 00:55:22)

 
 Top
dermff
Отправлено: 22 Января, 2013 - 18:09:52
Post Id


Гость


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


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




Сделал проверку чтобы если id товара уже добавлен в сессию, то повторно не добавлялся, не работает почему-то:

PHP:
скопировать код в буфер обмена
  1. $id = intval($_GET['id']); //id товара
  2. $count = $_POST['count']; //колличество товара
  3. if (!isset($_SESSION['basket'])) {
  4. $_SESSION['basket'] = array();
  5. }
  6.  
  7.  
  8. if(isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `tovar` WHERE `id`='".intval($_GET['id'])."'"), 0) == 1) {
  9. $_SESSION['basket'] = array();
  10. if (!in_array("$id", $_SESSION['basket'])) {
  11.  
  12. $_SESSION['basket'][]=$_GET['id'];
  13. }
  14. }
  15.  
  16. //$sql = "SELECT * FROM `tovar` WHERE `id` = IN (".implode(',', $_SESSION['basket']).")";
  17. $sql = "SELECT * FROM `tovar` WHERE `id` IN (".$_SESSION['basket'][0].")";
  18.  
  19. $result=mysql_query($sql);
  20.  
  21. while($res = mysql_fetch_assoc($result))
  22. {
  23. echo "</br></br><h1>".$res['price']."</h1>";
  24. }
 
 Top
spsu
Отправлено: 22 Января, 2013 - 18:23:17
Post Id



Частый гость


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


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




in_array надо юзать с оператором равенства, и проверки типа, in_array === false
Если товар будет в 0-ом эл-те массива, то он добавиться...

(Отредактировано автором: 22 Января, 2013 - 18:24:18)

 
 Top
dermff
Отправлено: 22 Января, 2013 - 18:33:06
Post Id


Гость


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


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




помоги плиз это осуществить
 
 Top
spsu
Отправлено: 22 Января, 2013 - 18:37:12
Post Id



Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. if (in_array("$id", $_SESSION['basket']) === false) {
  2.    $_SESSION['basket'][]=$_GET['id'];
  3. }
  4.  
 
 Top
dermff
Отправлено: 22 Января, 2013 - 18:42:22
Post Id


Гость


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


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




спасибо, теперь работает.. А как сделать чтобы возле id товара добавлялось в сессию его колличество которое передается через post в переменной $count ?

(Отредактировано автором: 22 Января, 2013 - 19:06:28)

 
 Top
dermff
Отправлено: 22 Января, 2013 - 21:58:28
Post Id


Гость


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


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




я так понял это нужно применить ассоциативный массив? Помогите пожалуйста это сделать

(Отредактировано автором: 22 Января, 2013 - 21:59:01)

 
 Top
caballero
Отправлено: 22 Января, 2013 - 23:44:33
Post Id


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


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


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




Интересно, как можно писать интернет магазин не имея понятия о такой элементарной вещи как работа с массивами.

Делается массив - id товара, количество, цена или что там еще - это запись строки в корзине.
этот массив, и другие ему подобные если в корзине еще строки, запихивается в массив который живет в сессии.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
dermff
Отправлено: 23 Января, 2013 - 08:31:29
Post Id


Гость


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


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




Проблема решена, всем спасибо!

(Отредактировано автором: 23 Января, 2013 - 08:31:46)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB