Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 6
1

Массив: При отправке гетом количества для определенного товара изменить количество товара в массиве по ID

01.02.2016, 20:53. Показов 474. Ответов 7
Метки нет (Все метки)

Здравствуйте форумчане. Возникла такая проблема. Есть массив товаров
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
46
47
48
49
50
51
52
array(2) {
  [0]=>
  array(11) {
    ["id"]=>
    string(1) "2"
    ["article"]=>
    string(1) "0"
    ["name"]=>
    string(15) "Etiam Tristique"
    ["description"]=>
    string(512) "HTC Touch - in High Definition. Watch music videos and streaming content in awe-inspiring high definition clarity for a mobile experience you never thought possible. Seductively sleek, the HTC Touch HD provides the next generation of mobile functionality, all at a simple touch. Fully integrated with Windows Mobile Professional 6.1, ultrafast 3.5G, GPS, 5MP camera, plus lots more - all delivered on a breathtakingly crisp 3.8" WVGA touchscreen - you can take control of your mobile world with the HTC Touch HD."
    ["price"]=>
    string(3) "120"
    ["url_img"]=>
    string(22) "/webroot/img/toy/2.jpg"
    ["sklad"]=>
    string(1) "1"
    ["brend"]=>
    string(4) "ewfe"
    ["other"]=>
    string(3) "toy"
    ["time"]=>
    string(19) "0000-00-00 00:00:00"
    ["kol"]=>
    int(1)
  }
  [1]=>
  array(11) {
    ["id"]=>
    string(1) "3"
    ["article"]=>
    string(1) "0"
    ["name"]=>
    string(11) "Sed At Ante"
    ["description"]=>
    string(0) ""
    ["price"]=>
    string(3) "152"
    ["url_img"]=>
    string(22) "/webroot/img/toy/3.jpg"
    ["sklad"]=>
    string(1) "1"
    ["brend"]=>
    string(3) "wef"
    ["other"]=>
    string(3) "toy"
    ["time"]=>
    NULL
    ["kol"]=>
    int(3)
  }
}
Как сделать что при отправке гетом количества для определенного товара изменялось количество товара в массиве для конкретного id, а другие товары оставались теже. Нужно что бы переписывалось 'kol' для определенного 'id'
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2016, 20:53
Ответы с готовыми решениями:

Массив записей. Структура: наименование товара, его количество, цену за единицу товара и общую стоимость данного товара
Пожалуйста помогите с задачкой на массивы для экзамена.. 1.Разработать программу на ЯП Pascal, в...

Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на склад
Опишите класса товара. Поля класса: имя товара, цена товара, количество товара на складе. Выполнить...

Нужно чтобы количество товара на странице прайс уменьшалось при заказе товара
нужно чтобы количество товара на странице прайс уменьшалось при заказе товара на странице заказ, ...

Сведения об экспорте/импорте товара состоят из наименования товара, страны, количества
Сведения об экспорте/импорте товара состоят из наименования товара, страны, количества (в штуках),...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
7
171 / 166 / 75
Регистрация: 21.11.2014
Сообщений: 1,488
01.02.2016, 22:08 2
а исходный массив как у вас передается дальше?
0
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 6
01.02.2016, 23:06  [ТС] 3
в таком виде записывается в сесии, а потом в БД
0
171 / 166 / 75
Регистрация: 21.11.2014
Сообщений: 1,488
02.02.2016, 00:09 4
включу экстрасеКса

Допустим, исходный массив, который дальше передается, будет
PHP
1
$_SESSION['source_array']
Тогда в самом грубом приближении на странице, куда мы отправляем юзера (с GET) мы просто производим математическую операцию с определенным элементом этого массива.. типа
PHP
1
2
3
foreach ($_SESSION['source_array'] as $key=>$val){
if ($val['id']==$_GET['id']) $_SESSION['source_array'][$key]['kol']=$_SESSION['source_array'][$key]['kol']-$_GET['kol'];
}
почему "в грубом приближении"? А потому, что нельзя доверять введенным пользователем данным. Их надо обязательно проверять перед использованием. Да и к тому же, у Вас
PHP
1
$_GET['kol']
может быть больше, чем
PHP
1
$_SESSION['source_array'][nnn]['kol']
1
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 6
02.02.2016, 18:51  [ТС] 5
Спасибо за ответ. Но не получается
PHP
1
2
3
4
5
6
7
8
9
if ($_GET) {
            $kol = (int)$_GET['kol'];
            $id_tovar = (int)$_GET['id_tovar'];
 
            foreach ($this->data['tovar'] as $key=>$value ) {
                if($value['id']==$id_tovar){
                    $this->data['tovar'][$key]['kol']=$kol;
                }
            }
получается что для того товара к которому относится id значение kol поменялось. Но если я повторно передаю другое значение id и kol то значение предыдущее делается 1. Мне нужно что бы значения kol менялись, но сохранялись предыдущее данные для других id
0
171 / 166 / 75
Регистрация: 21.11.2014
Сообщений: 1,488
02.02.2016, 20:04 6
чой-та сессию не лицезрею
0
0 / 0 / 0
Регистрация: 31.12.2015
Сообщений: 6
02.02.2016, 20:11  [ТС] 7
просто сначала это массив - результ с БД, а потом он записывается в сессию
0
171 / 166 / 75
Регистрация: 21.11.2014
Сообщений: 1,488
02.02.2016, 20:22 8
я просто по Вашему коду нифига не понимаю.
Давайте еще раз - без кода. Просто логически рассуждаем.
Итак, Вы получаете данные из БД. Их надо загнать в сессию. Точнее в сессионную переменную, которая будет массивом.
И работайте дальше с ней как с массивом. Не надо перегонять туда и обратно.. не выходите из сессии. И если в этой сессионной переменной поменяли значение, то никуда оно уже не сбросится, если Вы сами этого не захотите
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2016, 20:22

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вычислить общую стоиммость товара. Если количества единиц товара больше 10, предоставить 5% скидку
Поле 1: Цена товара; Поле 2: Количество единиц товарв; Поле 3: Срок годности товара; 1)...

Как сделать, чтобы количество товара в расходе не превышало количество товара в остатках?
Таблица operation(access):id, atime, product_id, postavshik_id, qty, Price, price_prodazha. В...

Необходимо изменять количество товара на складе исходя из проданного товара
Здравствуйте форумчане, необходимо изменять количество товара на складе (в форме), исходя из...

Создать тип с описанием товара: код, наименование, цена за единицу товара, количество и сумма.
Помоготе решить задачу плз!!! Создать тип с описанием товара: код, наименование, цена за...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.