|
|
|
| проблема с циклом do{} while цикл работает, выводит все 'title' но только после нажатия по ссылке <a href='edit_pamoka.php?id=%s'>%s</a>
как бы должно сработать 'else' но обратно выводит все 'title' на страницу
<?php
if (!isset($id))
{
$result = mysql_query("SELECT title,id FROM pamokos");
$myrow = mysql_fetch_array($result);
do
{
printf("<p><a href='edit_pamoka.php?id=%s'>%s</a></p>", $myrow["id"], $myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
print "не работает";
}
?>
|
| |
|
|
|
|
|
|
|
для: raimund
(09.07.2009 в 00:38)
| | Где определяется переменная $id ?
Цикл do здесь не к месту, но это тема отдельная, поскольку не работает у Вас не он.
Просто ответьте на первый вопрос.
PS. Гусар от апологетов php3 попрошу помолчать. | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2009 в 00:47)
| | не совсем понял?
при нажатии по ссылке вытаскивается id
получается что id нужно приравнивать к $id
но так все равно не работает | |
|
|
|
|
|
|
|
для: raimund
(09.07.2009 в 01:37)
| | >при нажатии по ссылке вытаскивается id
>получается что id нужно приравнивать к $id
Это не так.
Сами по себе переменные не создаются, какие бы ссылки не стояли. | |
|
|
|
|
|
|
|
для: raimund
(09.07.2009 в 01:37)
| | При нажатии по ссылке приходит не $id, а $_GET['id'], Разницу ощущаете? | |
|
|
|
|
|
|
|
для: GeorgeIV
(09.07.2009 в 11:52)
| | спасибо, ошибку понял | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2009 в 00:47)
| | Небольшой оффтоп.
Я вот давно уже силюсь понять, в каком случае должен применятся do... while Не теоретически, это я знаю, а на практике. Никогда не встречался ни в чужих скриптах, ни в собственных потребностях.
Не смогли бы Вы продемонстрировать случай, когда это действительно оптимально?
Спасибо. | |
|
|
|
|
|
|
|
для: Николай2357
(09.07.2009 в 11:41)
| | do while применяется обычно, когда как минимум один цикл должен выполниться
а в while сначала идет проверка, а потом уже выполнение или нет.
Применительно к выбркам из базы лучше применять while , потому как результат выборки может и ошибочный и нулевой. | |
|
|
|
|
|
|
|
для: GeorgeIV
(09.07.2009 в 11:49)
| | >do while применяется обычно,
Покажите мне пожалуйста это обычно.
Я прекрасно понимаю как он работает и часто объясняю другим. Но вот если вдруг кто нибудь задаст вопрос - а когда именно
>как минимум один цикл должен выполниться
я чесно говоря попадаю в тупик. Мне бы хоть один примерчик, когда действительно без него никак. | |
|
|
|
|
|
|
|
для: Николай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> ($coxe[$n]:".($m+1).") Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==3) {$_SESSION['pole'][$m][$n]=3; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font> ($coxe[$n]:".($m+1).") Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==4) {$_SESSION['pole'][$m][$n]=4; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font> ($coxe[$n]:".($m+1).") Мимо<br>".$_SESSION['log'];}
if($_SESSION['pole'][$m][$n]==0) {$_SESSION['warcomp'][$m][$n]=2; $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font> ($coxe[$n]:".($m+1).") Мимо<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> ($coxe[$n]:".($m+1).") Убит<br>".$_SESSION['log'];} else $_SESSION['log']="<font color=#ff50ff>".date("H:i:s")."</font> ($coxe[$n]:".($m+1).") Ранен<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")." <b>Вы проиграли</b><br />".$_SESSION['log']; $msg= "Вы проиграли";}
} while($hodc);
|
к обработке результата выборки из базы это ни коим образом не относится. | |
|
|
|
|
|
|
|
для: Николай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);
|
| |
|
|
|
|
|
|
|
для: Trianon
(09.07.2009 в 13:06)
| | Valick , Trianon
Большое спасибо. | |
|
|
|