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]   

> Описание: Цена товара в зависимости от количества
iuranemo
Отправлено: 22 Мая, 2012 - 14:39:40
Post Id


Новичок


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


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




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

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



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




PHP:
скопировать код в буфер обмена
  1. $pr = explode(";", "5;1000");
  2. echo ($pr[1]/100)*$pr[0];


\\Тьфу)))

(Отредактировано автором: 22 Мая, 2012 - 15:15:32)

 
 Top
iuranemo
Отправлено: 22 Мая, 2012 - 15:19:03
Post Id


Новичок


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


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




avtor.fox пишет:
PHP:
скопировать код в буфер обмена
  1. $pr = explode(";", "5;1000");
  2. echo ($pr[1]/100)*$pr[0];


\\Тьфу)))

По-моему это немного не то.
 
 Top
avtor.fox
Отправлено: 22 Мая, 2012 - 15:28:44
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




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


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

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

Хочу того, не зная чего. Растерялся
 
 Top
iuranemo
Отправлено: 22 Мая, 2012 - 15:41:29
Post Id


Новичок


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


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




Извините. Может неправильно объяснил.
У нас массив значений. Цена варьируется в зависимости от количества заказов.
Значения в массиве могут быть разные. То есть массив может быть такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. 25;1000 // до 25 заказов цена 1000
  3. 50;950 // от 25 до 50 заказов цена 950
  4.  


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

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



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Ну напишите теперь формирование массива.

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

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

Я не могу понять откуда плясать Однако
 
 Top
iuranemo
Отправлено: 22 Мая, 2012 - 15:53:52
Post Id


Новичок


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


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




вот что показывает 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 )
 
 Top
tuareg
Отправлено: 22 Мая, 2012 - 16:07:40
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




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 и т.д

(Отредактировано автором: 22 Мая, 2012 - 16:10:10)

 
 Top
iuranemo
Отправлено: 22 Мая, 2012 - 16:59:54
Post Id


Новичок


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


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




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 или более ничего не выводит Огорчение

(Отредактировано автором: 22 Мая, 2012 - 17:00:41)

 
 Top
tuareg
Отправлено: 22 Мая, 2012 - 17:21:47
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




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.  
 
 Top
iuranemo
Отправлено: 22 Мая, 2012 - 17:25:01
Post Id


Новичок


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


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




Спасибо огромное. Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB