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

Форум PHP

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

 

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

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

тема: можно ли использовать if внутри foreach?

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

 
 автор: nep_sy   (26.08.2007 в 18:43)   письмо автору
 
   для: Yuriev   (25.08.2007 в 02:19)
 

неужели нет никакого решения? ошибка возникает только в том случае, если $value принимает пустое значение, а если каждому из них присвоить ненулевое значение?

   
 
 автор: Yuriev   (25.08.2007 в 02:19)   письмо автору
 
   для: nep_sy   (25.08.2007 в 01:58)
 

Если несколько юзеров будут онлайн, то при каждой работе всего скрипту в базу будет записана инфа про первого юзера, а до остальных так и не дойдет

   
 
 автор: nep_sy   (25.08.2007 в 01:58)   письмо автору
 
   для: Yuriev   (25.08.2007 в 01:53)
 

>С самого начала.
>Если смотреть цикл foreach($arr_users as $user) то при выходе из него $files будет иметь инфу из одного первого встреченного файла, а кто первый встретится-неизвестно.
>Вы так и хотите? да
>К стати, сколько строк в файлах? в каждом по-разному до 40 строк доходит

   
 
 автор: Yuriev   (25.08.2007 в 01:53)   письмо автору
 
   для: nep_sy   (25.08.2007 в 01:02)
 

С самого начала.
Если смотреть цикл foreach($arr_users as $user) то при выходе из него $files будет иметь инфу из одного первого встреченного файла, а кто первый встретится-неизвестно.
Вы так и хотите?
К стати, сколько строк в файлах?

   
 
 автор: nep_sy   (25.08.2007 в 01:32)   письмо автору
 
   для: Yuriev   (25.08.2007 в 00:23)
 

>Кдючь 'login_online' у массива $files может быть только один и при первом проходе цикла если там единица то $arr присваивает "yes" и при последующих проходах в $arr['login_online'] лежит не единица, а значит каждый раз кладет "no"

а как сделать, что бы при следующем прохождении $arr['login_online'] возвращалось первоначальное значение?

   
 
 автор: nep_sy   (25.08.2007 в 01:02)   письмо автору
 
   для: Yuriev   (25.08.2007 в 00:23)
 

вот так оно выглядит:

foreach($arr_users as $user) { 


$files = file("http://" . $c . ".combats.ru/inf.pl?login=" . $user . "&short=1");

if (!$files) {
    $files = file("http://" . $b . ".combats.ru/inf.pl?login=" . $user . "&short=1");
    } if (!$files) {
          $files = file("http://" . $a . ".combats.ru/inf.pl?login=" . $user . "&short=1");
          } if (!$files) {
              $files = file("http://" . $g . ".combats.ru/inf.pl?login=" . $user . "&short=1");
              } if (!$files) {
                  $files = file("http://" . $e . ".combats.ru/inf.pl?login=" . $user . "&short=1");
                  } if (!$files) {
                      $files = file("http://" . $f . ".combats.ru/inf.pl?login=" . $user . "&short=1");
                      } if (!$files) {
                          $files = file("http://" . $d . ".combats.ru/inf.pl?login=" . $user . "&short=1");
                          } if (!$files) {
                              $files = file("http://" . $h . ".combats.ru/inf.pl?login=" . $user . "&short=1");
}


  
foreach($files as $value) {
list($var, $val) = split("=", $value);
if ($arr['login_online'] == "")  
echo "no";   

}
echo $arr['login_online'];
#mysql_query("INSERT INTO `sostav` (name, level, rang, gorod, online) VALUES ('".$arr['login']."', '".$arr['level']."', '".$arr['rank']."', '".$arr['gamecity']."', '".$arr['login_online']."')"); 

}

для каждого user свой статус онлайн, то есть для него login_online=1, те кто в оффлайне login_online= (пустому значению) как только он нарывается на пустое значение, начинается глюк

   
 
 автор: nep_sy   (25.08.2007 в 00:26)   письмо автору
 
   для: Yuriev   (25.08.2007 в 00:14)
 


foreach($files as $value) {
list($var, $val) = split("=", $value);
if ($key == "login_online" && $value == 1)  
echo "yes"; 
else  
echo "no"; 
}
echo $arr['login_online'];


выдает то же самое(
no
no
no
no
.
.
.
.
no

   
 
 автор: Yuriev   (25.08.2007 в 00:23)   письмо автору
 
   для: nep_sy   (24.08.2007 в 23:49)
 

Кдючь 'login_online' у массива $files может быть только один и при первом проходе цикла если там единица то $arr присваивает "yes" и при последующих проходах в $arr['login_online'] лежит не единица, а значит каждый раз кладет "no"

   
 
 автор: Yuriev   (25.08.2007 в 00:14)   письмо автору
 
   для: nep_sy   (24.08.2007 в 23:49)
 


// $array - это массив
foreach($array as $key=>$value) { 
  //тут можно делать что угодно, кроме изменения $array 
  if ($key =='login_online' and $value==1)  echo 'yes';
  else  echo 'no';

   
 
 автор: nep_sy   (25.08.2007 в 00:07)   письмо автору
 
   для: Poison   (24.08.2007 в 23:57)
 

первое значени подставляет правильно, а остальные начинает повторять

no
no
no



тут есть особенность $arr['login_online'] принимает только два значения 1 и пустое значение ""

   

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

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

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