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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: проблема с циклом do{} while

Сообщения:  [1-10]   [11-12] 

 
 автор: raimund   (09.07.2009 в 20:43)   письмо автору
 
   для: GeorgeIV   (09.07.2009 в 11:52)
 

спасибо, ошибку понял

  Ответить  
 
 автор: Николай2357   (09.07.2009 в 13:40)   письмо автору
 
   для: Trianon   (09.07.2009 в 13:06)
 

Valick , Trianon
Большое спасибо.

  Ответить  
 
 автор: Trianon   (09.07.2009 в 13:06)   письмо автору
 
   для: Николай2357   (09.07.2009 в 12:04)
 

do while применяется тогда, когда решение о повторе цикла можно принять не ранее, чем хотя бы один цикл будет исполнен.
Хрестоматийный алгоритмический пример - преобразование целого числа в строковую запись:

$number = time();
$s = '';
$radix = 10;
$digits = "0123456789ABCDEF";
do
{
    $digit = $number % $radix;
    $number = ($number - $digit) / $radix;
    $s = $digits[$digit] . $s;
}
while($number);

  Ответить  
 
 автор: Valick   (09.07.2009 в 12:53)   письмо автору
 
   для: Николай2357   (09.07.2009 в 12:04)
 

>Покажите мне пожалуйста это обычно.
например когда количество итераций неопределено и зависит от результата работы тела цикла
do 
{
$hodc=false;
if($w=random_badpoint($_SESSION['pole'],3))
  {
  $key1=explode("|",$w);
  $w=check_badpoint($_SESSION['pole'],$key1[0],$key1[1],2,3);
  $key1=explode("|",$w);
  $m=$key1[0];
  $n=$key1[1];
  }
  else
  {
//  echo "*";
  if($q=random_badpoint($_SESSION['warcomp'],0))
    {
    $key2=explode("|",$q);
    $m=$key2[0];
    $n=$key2[1];
    }
    else
    {
    $m=0;
    $n=0;
    }
  }
//  echo $m.$n;
if($_SESSION['pole'][$m][$n]==2) {$_SESSION['pole'][$m][$n]=2; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==3) {$_SESSION['pole'][$m][$n]=3; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==4) {$_SESSION['pole'][$m][$n]=4; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==0) {$_SESSION['warcomp'][$m][$n]=2; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Мимо<br>".$_SESSION['log']; $_SESSION['pole'][$m][$n]=2;}
if($_SESSION['pole'][$m][$n]==1) 
  {
  $_SESSION['warcomp'][$m][$n]=3; 
  $_SESSION['pole'][$m][$n]=3;
  $hodc=true;
  if($w=check_badship($_SESSION['pole'],$m,$n,1,3)) { $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Убит<br>".$_SESSION['log'];} else  $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font>&nbsp;($coxe[$n]:".($m+1).")&nbsp;Ранен<br>".$_SESSION['log'];
//  set_point($_SESSION['pole'],2,0);
  check_point($_SESSION['pole'],3,2);
  check_point($_SESSION['pole'],4,2);
  if($w) check_ship($_SESSION['pole'],$w,0,4,2);
  chenge_point($_SESSION['pole'],$_SESSION['warcomp'],2);
  chenge_point($_SESSION['warcomp'],$_SESSION['pole'],2);
  }

if(check_endwar($_SESSION['pole'],1))  {$_SESSION['log']=date("H:i:s")."&nbsp;<b>Вы проиграли</b><br />".$_SESSION['log']; $msg= "Вы проиграли";}
} while($hodc);

к обработке результата выборки из базы это ни коим образом не относится.

  Ответить  
 
 автор: Николай2357   (09.07.2009 в 12:04)   письмо автору
 
   для: GeorgeIV   (09.07.2009 в 11:49)
 

>do while применяется обычно,
Покажите мне пожалуйста это обычно.
Я прекрасно понимаю как он работает и часто объясняю другим. Но вот если вдруг кто нибудь задаст вопрос - а когда именно
>как минимум один цикл должен выполниться
я чесно говоря попадаю в тупик. Мне бы хоть один примерчик, когда действительно без него никак.

  Ответить  
 
 автор: GeorgeIV   (09.07.2009 в 11:52)   письмо автору
 
   для: raimund   (09.07.2009 в 01:37)
 

При нажатии по ссылке приходит не $id, а $_GET['id'], Разницу ощущаете?

  Ответить  
 
 автор: GeorgeIV   (09.07.2009 в 11:49)   письмо автору
 
   для: Николай2357   (09.07.2009 в 11:41)
 

do while применяется обычно, когда как минимум один цикл должен выполниться
а в while сначала идет проверка, а потом уже выполнение или нет.
Применительно к выбркам из базы лучше применять while , потому как результат выборки может и ошибочный и нулевой.

  Ответить  
 
 автор: Николай2357   (09.07.2009 в 11:41)   письмо автору
 
   для: Trianon   (09.07.2009 в 00:47)
 

Небольшой оффтоп.
Я вот давно уже силюсь понять, в каком случае должен применятся do... while Не теоретически, это я знаю, а на практике. Никогда не встречался ни в чужих скриптах, ни в собственных потребностях.
Не смогли бы Вы продемонстрировать случай, когда это действительно оптимально?
Спасибо.

  Ответить  
 
 автор: Trianon   (09.07.2009 в 01:53)   письмо автору
 
   для: raimund   (09.07.2009 в 01:37)
 

>при нажатии по ссылке вытаскивается id
>получается что id нужно приравнивать к $id

Это не так.
Сами по себе переменные не создаются, какие бы ссылки не стояли.

  Ответить  
 
 автор: raimund   (09.07.2009 в 01:37)   письмо автору
 
   для: Trianon   (09.07.2009 в 00:47)
 

не совсем понял?

при нажатии по ссылке вытаскивается id
получается что id нужно приравнивать к $id

но так все равно не работает

  Ответить  

Сообщения:  [1-10]   [11-12] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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