Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Возврат на определенную строку
 
 автор: Ученик   (20.03.2006 в 15:19)   письмо автору
 
 

Возник другой вопрос. В некоторых языках программирования есть такая функция возвращения на какую-либо строку кода. У меня такая ситуация:

<?
//выбор из базы цены предмета

//вывод цены и количества
echo $cena;
echo 
$kolichestvo;

if(
$cena*$kolichestvo>400){
//вот тут мне хотелось бы чтобы скрипт вернулся к началу выбрал другие цены из базы и продолжил дальше
}
echo 
"Всего ".$cena*$kolichestvo;
?>

Хотел сначала все данные помещать во временный буфер, потом выводить только те цены которые удовлетворяют моему условию... Немного некрасиво получается, думаю можно решить эту ситуацию проще, вот и вспомнился "return 14"-возвращаемся к 14-й строке кода, но в PHP нет такой функции, если есть то не так называеться...
Заранее спасибо

   
 
 автор: elenaki   (20.03.2006 в 15:23)   письмо автору
 
   для: Ученик   (20.03.2006 в 15:19)
 

В некоторых языках программирования ...
===================================
не в некоторых, а в линейных (Basic). а PHP - структрурный.

   
 
 автор: Trianon   (20.03.2006 в 15:35)   письмо автору
 
   для: Ученик   (20.03.2006 в 15:19)
 

А на структурных языках это пишется примерно так:
<? 
// что-то в самом начале
do
{
  
//выбор из базы цены предмета 
  
  //вывод цены и количества 
  
echo $cena
  echo 
$kolichestvo;

  
//вот тут мне хотелось бы чтобы скрипт вернулся к началу выбрал другие цены из базы и продолжил дальше
 
}  while($cena*$kolichestvo>400)

echo 
"Всего ".$cena*$kolichestvo
?> 

   
 
 автор: Ученик   (20.03.2006 в 15:40)   письмо автору
 
   для: Trianon   (20.03.2006 в 15:35)
 

Вы немного не поняли, мне не нужно выполнять скрипт в скобках до

($cena*$kolichestvo>400)


Мне нужно: если сумма больше 400, то выводяться не розничные цены, а оптовые. а эти значения храняться в БД, просто в другом поле.

   
 
 автор: elenaki   (20.03.2006 в 16:01)   письмо автору
 
   для: Ученик   (20.03.2006 в 15:40)
 

BMECTO:
while($cena*$kolichestvo>400)
->
if ($cena*$kolichestvo>400)

   
 
 автор: Trianon   (20.03.2006 в 16:09)   письмо автору
 
   для: Ученик   (20.03.2006 в 15:40)
 

Тогда из таблицы БД надо выбирать сразу оба поля.

$cena =  $crozn_cena*$kolichestvo <  400  ?   $rozn_cena
                                          :   $opt_cena ;
$stoimost = $cena * $kolichestvo;

   
 
 автор: Ученик   (20.03.2006 в 17:57)   письмо автору
 
   для: Trianon   (20.03.2006 в 16:09)
 

Ладно сейчас сделаю пример, чтобы на пальцах не показывать...

   
 
 автор: Ученик   (20.03.2006 в 18:07)   письмо автору
 
   для: Trianon   (20.03.2006 в 16:09)
 

<?
$name
=array(
 
предмет1,
 
предмет2,
 
предмет3);

$cena_rozn=array(
 
30,
 
40,
 
45);

$cena_opt=array(
 
26,
 
35,
 
37);

//например выбрали предмет2-100шт, предмет3-500шт
echo "$name[2] 100шт по цене $cena_rozn[2]";
echo 
"$name[3] 500шт по цене $cena_rozn[3]";

echo 
"Сумма ".$cena_rozn[2]*100+$cena_rozn[3]*500;
// Сумма 26500.
// Допустим при сумме больше 20к нужно считать по оптовым ценам.
//Значит мне не нужно выводить сумму и все пересчитывать по оптовым ценам...
?>

Другого как переделать нижнюю часть на
<?
$sum
=$cena_rozn[2]*100+$cena_rozn[3]*500;
if(
$sum<=20000){
echo 
"Сумма $sum";
}
else{
$sum=$cena_opt[2]*100+$cena_opt[3]*500;
echo 
"Сумма $sum";
?>

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

   
 
 автор: Trianon   (20.03.2006 в 18:29)   письмо автору
 
   для: Ученик   (20.03.2006 в 18:07)
 

А если выбрано не 100 и не 500 шт или не 2-й и 3-й предметы, Вы программу будете переписывать? :)

   
 
 автор: Ученик   (20.03.2006 в 19:09)   письмо автору
 
   для: Trianon   (20.03.2006 в 18:29)
 

Спасибо попробую ;-)

>А если выбрано не 100 и не 500 шт или не 2-й и 3-й предметы, Вы программу будете
>переписывать? :)

Да нет это я просто за 3мин написал примерчик.. ;-)

   
 
 автор: Trianon   (20.03.2006 в 18:35)   письмо автору
 
   для: Ученик   (20.03.2006 в 18:07)
 


<? 
$cena 
$cena_rozn;
$sum=$cena[2]*100+$cena[3]*500
if(
$sum>=20000)

    
$cena $cena_opt;
    
$sum $cena[2]*100+$cena[3]*500
}
echo 
"${name[2]} 100шт по цене ${cena[2]}"
echo 
"${name[3]} 500шт по цене ${cena[3]}"
echo 
"Сумма  = $sum"
?>  

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования