За последние 24 часа нас посетили 17988 программистов и 1651 робот. Сейчас ищут 2096 программистов ...

Как создать сессию со значением кнопки?

Тема в разделе "PHP для новичков", создана пользователем Undertaker, 27 мар 2016.

  1. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Всем привет! Есть код, который недодуман:
    Код (PHP):
    1. if($_POST['id'] == $row["prod_id"]){
    2.                     if(isset($_SESSION['$row[prod_id]'])){
    3.                     $_SESSION['$row[prod_id]']['itogo']+=$row['prod_price'];
    4.                     $_SESSION['$row[prod_id]']['name']=$row['prod_name'];
    5.                     $_SESSION['$row[prod_id]']['price']=$row['prod_price'];
    6.                     $_SESSION['$row[prod_id]']['count']+=1;
    7.                     }else{
    8.                     $_SESSION['$row[prod_id]']['itogo']=$row['prod_price'];
    9.                     $_SESSION['$row[prod_id]']['name']=$row['prod_name'];
    10.                     $_SESSION['$row[prod_id]']['price']=$row['prod_price'];
    11.                     $_SESSION['$row[prod_id]']['count']=1;
    12.                     }
    13.         }
    14.  
    Как присвоить значение $row["prod_id"] имени сессии? То есть, при нажатии на определенную кнопку(а их там не одна),у которой есть ID, равный $row["prod_id"], должна создаваться сессия с именем $row["prod_id"]. Как сделать ? По моему коду не работает...

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    $_SESSION - это массив. Создай ключ и присвой то что тебе нужно (;
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Предлагаю вам еще раз почитать, что такое сессии и как они работают.

    $_SESSION['$row[prod_id]'] - это не обращение к сессии с таким-то именем. Нет никакого супарглобального массива всех сессий, из которого надо достать "свою". $_SESSION - это массив, уникальный для каждой открытой сессии. Туда просто кладешь значения и не паришься.

    А еще этот массив не появится в системе, если не был вызван session_start(); Точнее как, при попытках что-то записать в него, появиться-то он появится, но не будет сохранен как сессия. Для пхп это будет обычный массив, который умрет после отработки.
     
  4. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Как можно создать ключ? Я весь день голову ломаю сегодня над сессией...
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Ключ - это просто строка в кавычках. Ты вообще в курсе, как работают массивы в пхп, бро? По-моему ты немного вперед забегаешь с сессиями.
     
  6. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Тогда как можно организовать мой код по-другому?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не надо его организовывать. Его надо понять. Ты ж вообще не понимаешь, что пишешь. Ты вчитайся медленно в одну строку, тебе сразу всё станет понятно и ты сам поймешь, что написать.
     
  8. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    До меня никак не доходит, как создать сессию или переменную уникальной...
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зачем?

    ну сессия создаётся сама считай, нужно только разок дёрнуть session_start();

    а остальное-то тебе зачем?
     
  10. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    У меня из БД выводится товар, напротив каждого товара есть кнопка.
    Хочу сделать так: при нажатии на кнопку вывести сумму товара. При повторном нажатии на эту кнопку нужно прибавить к цене товара эту же цену.
    Пример: 2 товара - хлеб(20), соль(10). При нажатии на кнопку хлеб n-ное количество раз нужно 20*n, при нажатии на соль сделать 10*n.
    Вот и надо как-то сделать для каждой кнопки что-то уникальное - либо переменную, либо еще что...
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    надо просто идентификатор товара =) он и уникальный и на товар указывает. Удобно ж.
     
  12. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Тогда пляшем дальше: у хлеба ID=1, у соли ID=2. Дальше как быть?
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. $_SESSION['goods'][1]['price'] = 100;
    2. $_SESSION['goods'][1]['quantity'] = 4;
    3. $_SESSION['goods'][1]['amount'] = 400; 
     
  14. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Получается, что [1] - это у вас идентификатор? И он руками прописан. А как его присвоить автоматически? Допустим, у кнопки ID = 50. Как поставить 50 автоматически, а не руками?
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну что значит как. Как-то. Нажал на кнопку, отправилась форма. Три хлеба и одна соль. Клади в сессию. Читай из сессии. Повелевай сессией. Рисуй корзиночку. =)
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Передавать POST-запросы умеешь? Если нет, то срочно читай, что это да как. Это крайне краеугольный камень всего и вся.
    Если умеешь, то клади свои ID-шки в POST, а на стороне сервера уже иди по нему циклом и втыкай значения из него в качестве айдишников в сессии.
     
  17. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Допустим, при нажатии на кнопку вывелась цена товара. Как при повторном нажатии на эту кнопку прибавить к этой цене эту же цену?
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    забей. для начала:

    ты вообще с формами работал?
     
  19. Undertaker

    Undertaker Новичок

    С нами с:
    27 мар 2016
    Сообщения:
    10
    Симпатии:
    0
    Да. С этим уже разобрался!

    Добавлено спустя 1 минуту 29 секунд:
    Спасибо всем!