Forum Webscript.Ru

Программирование => PHP => Тема начата: не не от 07 Июня 2002, 12:48:08

Название: помогите разобраться с циклом
Отправлено: не не от 07 Июня 2002, 12:48:08
$i="1";
$n="1";
$lol_k="0";
$lol_f="0";
while($i)
{
   $n="1";
if($lol_k>col_kategor()){break;}
if(isset_kat($i)=="1"){echo"$i
"; $lol_k++;
   while($n){
      if($lol_f>col_forum($i)){$lol_f="0"; break;}
      if(isset_for($i, $n)=="1"){
         echo"$n".isset_kat($i)."

".col_forum($i)."

"; $lol_f++; $n++; $i++;}
      else{$n++; $i++;}
      }
   }
   else{$i++;}
   }

почему цикл неостанавливается?

Название: помогите разобраться с циклом
Отправлено: AlieN от 07 Июня 2002, 13:02:05
$lol_f
$lol_k где им значение придаются(кроме нулевых)?
Название: помогите разобраться с циклом
Отправлено: GotZfild от 07 Июня 2002, 13:46:56
Мама ты моя родная... Кто тебя учил так писАть? Неудивительно, что сам же не можешь найти ошибку.
У тебя в условии WHILE стоит, что $i должна быть не равна нулю, ее первоначальное значение 1.
Но в цикле $i у тебя только увеличивается ($i++). Так каким образом она станет равна нулю?
Название: помогите разобраться с циклом
Отправлено: не не от 07 Июня 2002, 13:47:15
короче тут если категория $i существует то $lol_k+1 и если $lol_k больше кочества категорий то break;

и потом точно такая же система с $n, и вот тут он как раз неостанавливается
Название: помогите разобраться с циклом
Отправлено: AlieN от 07 Июня 2002, 18:40:07
Цитировать
Кто тебя учил так писАть

GotZfild
Читай мнимательно......
если чтение неудачно - попытка номер 2 :cool:
не не
Может сурс полностью даш?
или все функция добавишь?
Название: помогите разобраться с циклом
Отправлено: GotZfild от 07 Июня 2002, 20:42:38
Цитировать
Читай мнимательно......

Нет, я конечно все понимаю, но если уж просишь найти ошибку в скрипте, то будь любезен предоставить его в удобоваримом виде. Ведь есть определенные стандарты (http://pear.php.net/manual/en/standards.php), которых все-таки следует придерживаться. Кроме того, в форуме специально для php-кода предусмотрен vb-код [php]
Название: помогите разобраться с циклом
Отправлено: не не от 07 Июня 2002, 22:35:14
Цитировать
Может сурс полностью даш

http://www.halava.dax.ru/web/forum.zip

там страница ass.php
Название: помогите разобраться с циклом
Отправлено: DAL от 07 Июня 2002, 23:43:46
Кстати, я столкнулся с той же проблемой, спасибо!
Название: помогите разобраться с циклом
Отправлено: GotZfild от 08 Июня 2002, 11:11:35
Цитировать
http://www.halava.dax.ru/web/forum.zip

Ссылка правильная? У меня 403 Forbidden выдается.
Название: помогите разобраться с циклом
Отправлено: не не от 08 Июня 2002, 11:23:01
Цитировать
Ссылка правильная? У меня 403 Forbidden выдается.

а щас
Название: помогите разобраться с циклом
Отправлено: GotZfild от 08 Июня 2002, 12:02:57
Все, скачал.
Но от этого легче не стало :)
Понять там что-либо достаточно сложно.
Больше всего опасений вызывают функции isset_... . Ты уверен, что они работают, как нужно?
А то при таких логических ошибках, как
function isset_kat($kat){
global $DB;
$f=opendir($DB);
$l="0";
while($file=readdir($f)){ // зачем тебе это нужно?
if($file!=="." && $file!==".." && !is_file($DB."/".$file) && $file!=="users"){
      if(is_dir("$DB/$kat")){$l="1";} else{$l="0";}
}}
return $l;
}
может чего-нибудь и не так сработает.
Название: помогите разобраться с циклом
Отправлено: не не от 08 Июня 2002, 12:31:36
Цитировать
// зачем тебе это нужно?

чтоб проверить существование каталога
Название: помогите разобраться с циклом
Отправлено: GotZfild от 08 Июня 2002, 13:43:22
Каким образом вот это
Цитировать
if(is_dir("$DB/$kat")){$l="1";} else{$l="0";}

использует переменную $file?
Тебе достаточно просто

function isset_kat($kat) {
    return (int)@is_dir($GLOBALS["DB"]."/".$kat);
}
Название: помогите разобраться с циклом
Отправлено: не не от 08 Июня 2002, 14:40:40
да я это я просто сначала создал одну функцию а потом её размножал, и забыл удалить ненужное
Название: помогите разобраться с циклом
Отправлено: MadDog от 10 Июня 2002, 08:59:14
Цитировать
чтоб проверить существование каталога

IMHO, а зачем придумывать велосипед, когда есть уже встроенная функция is_dir()