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
Форумы портала PHP.SU :: Версия для печати :: Товар со скидкой
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Товар со скидкой

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

1. iuranemo - 22 Мая, 2012 - 14:39:40 - перейти к сообщению
Здравствуйте уважаемые форумчане. Помогите в решении одной задачки.
Имеем текстовое поле такого вида:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 0;1000
  3. 25;950
  4. 40;900
  5. 62;870
  6.  

Первое значение это количество, второе цена.
Задача следующая:
1. как распарсить это текстовое поле
2. есть переменная с количеством заказов, например у нас 42 заказа, соответственно цена 900 или 72 заказа, тогда цена 870.
Нужно выводить цену в зависимости от количества заказов.
Прошу у Вас помощь в решении данной задачи.
Спасибо.
2. avtor.fox - 22 Мая, 2012 - 14:48:23 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $pr = explode(";", "5;1000");
  2. echo ($pr[1]/100)*$pr[0];


\\Тьфу)))
3. iuranemo - 22 Мая, 2012 - 15:19:03 - перейти к сообщению
avtor.fox пишет:
PHP:
скопировать код в буфер обмена
  1. $pr = explode(";", "5;1000");
  2. echo ($pr[1]/100)*$pr[0];


\\Тьфу)))

По-моему это немного не то.
4. avtor.fox - 22 Мая, 2012 - 15:28:44 - перейти к сообщению
iuranemo пишет:
Первое значение это количество, второе цена.
Задача следующая:
1. как распарсить это текстовое поле
2. есть переменная с количеством заказов, например у нас 42 заказа, соответственно цена 900 или 72 заказа, тогда цена 870.
Нужно выводить цену в зависимости от количества заказов.
Прошу у Вас помощь в решении данной задачи.
Спасибо.


- каков вопрос, таков ответ.

Где хранятся значения? Какая "формула" при расчёте скидки? Куда отдавать результат?

Хочу того, не зная чего. Растерялся
5. iuranemo - 22 Мая, 2012 - 15:41:29 - перейти к сообщению
Извините. Может неправильно объяснил.
У нас массив значений. Цена варьируется в зависимости от количества заказов.
Значения в массиве могут быть разные. То есть массив может быть такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. 25;1000 // до 25 заказов цена 1000
  3. 50;950 // от 25 до 50 заказов цена 950
  4.  


Потом в зависимости от количества заказов (например 26) выводится соответствующая цена (например 950).

Значения в массиве будут меняются в зависимости от товара. Остаётся только формат (то есть количество;цена)
6. avtor.fox - 22 Мая, 2012 - 15:49:20 - перейти к сообщению
Ну напишите теперь формирование массива.

Оно случаем не такого вида? -

Array([0]=>[25;1000], [1]=>[50;950]) ?

Я не могу понять откуда плясать Однако
7. iuranemo - 22 Мая, 2012 - 15:53:52 - перейти к сообщению
вот что показывает print_r
CODE (htmlphp):
скопировать код в буфер обмена
  1. stdClass Object ( [id] => 12 [name] => Цены на товар со скидкой [value] => 50;1000 100;950 200;900 [type] => textarea [group] => 2 [published] => 1 [ordering] => 3 )
8. tuareg - 22 Мая, 2012 - 16:07:40 - перейти к сообщению
iuranemo пишет:
вот что показывает print_r
CODE (htmlphp):
скопировать код в буфер обмена
  1. stdClass Object ( [id] => 12 [name] => Цены на товар со скидкой [value] => 50;1000 100;950 200;900 [type] => textarea [group] => 2 [published] => 1 [ordering] => 3 )

Сделай
PHP:
скопировать код в буфер обмена
  1.  
  2. $znach=55;/*Текущее количество товаров*/
  3. $arr=explode(' ',Object['value']);/*--->$arr[0]=50;1000 $arr[1]=100;950*/
  4. $stackCena=1000;/*цена без скидки*/
  5. /**/
  6. for($i=0;$i<count($arr);$i++){/*можешь count вынести отдельно*/
  7.  $scid=explode(';',$arr[$i]);
  8.  if($scid[0]>$znach){
  9.     $cena=$stackCena;
  10.     break;
  11.  }
  12.  $stackCena=$scid[1];
  13. }
  14.  


P.S Тут единственно, что надо проследить, чтобы количество товаров шло по возрастанию
50-->60--->70 и т.д
9. iuranemo - 22 Мая, 2012 - 16:59:54 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2.         $znach=200;/*Текущее количество товаров*/
  3.         $arr=explode(' ','50;950 100;900 200;850');/*--->$arr[0]=50;1000 $arr[1]=100;950*/
  4.         $stackCena=1000;/*цена без скидки*/
  5.         for($i=0;$i<count($arr);$i++){/*можешь count вынести отдельно*/
  6.                 $scid=explode(';',$arr[$i]);
  7.                 if($scid[0]>$znach){
  8.                         $cena=$stackCena;
  9.                                 break;
  10.                          }
  11.                 $stackCena=$scid[1];
  12.                 }
  13. echo $cena;
  14.  

Спасибо!!! Улыбка Работает. Единственное что если задать значение количества товара например 200 или более ничего не выводит Огорчение
10. tuareg - 22 Мая, 2012 - 17:21:47 - перейти к сообщению
iuranemo пишет:

Спасибо!!! Улыбка Работает. Единственное что если задать значение количества товара например 200 или более ничего не выводит Огорчение

Не, а если подумать?
PHP:
скопировать код в буфер обмена
  1.  
  2.         $znach=200;/*Текущее количество товаров*/
  3.         $arr=explode(' ','50;950 100;900 200;850');/*--->$arr[0]=50;1000 $arr[1]=100;950*/
  4.         $stackCena=1000;/*цена без скидки*/
  5.         $flag=false;/*флаг, что сработал цикл*/
  6.         for($i=0;$i<count($arr);$i++){/*можешь count вынести отдельно*/
  7.                 $scid=explode(';',$arr[$i]);
  8.                 if($scid[0]>$znach){
  9.                    $cena=$stackCena;
  10.                    $flag=true;
  11.                    break;
  12.                  }
  13.            $stackCena=$scid[1];
  14.         }
  15.         if(!$flag){
  16.            $cena=$stackCena;
  17.         }  
  18. echo $cena;
  19.  
11. iuranemo - 22 Мая, 2012 - 17:25:01 - перейти к сообщению
Спасибо огромное. Улыбка

 

Powered by ExBB FM 1.0 RC1