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

Форум PHP

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

 

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

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

тема: Функция в цикле выполняется лишь один раз
 
 автор: zooppp   (10.01.2007 в 02:03)   письмо автору
 
 

Внимание, Вопрос:

Почему моя функция в цикле выполняется только один раз, т.е. выполнилась один раз, при продолжении цикла не выполняется...


$time_zone='+3600';

Сама функция:

function t_zone ($in_time) {
    global $time_zone;
if (!empty($time_zone)){
        if (substr($time_zone, 0,1)=='+'){
            $time_zone=str_replace('+', '', $time_zone);
            $zone_time=$in_time+$time_zone;
            }
            elseif (substr($time_zone, 0,1)=='-'){
                $time_zone=str_replace('-', '', $time_zone);
                 $zone_time=$in_time-$time_zone;
            }
            else {
                $zone_time=$in_time;
                }

    }else{
         $zone_time=$in_time;
    }
    return $zone_time;
};

цикл:

while ($view_p = mysql_fetch_array($q_posts)){
echo '<br />'.date('d.m.y, H:i', t_zone($view_p['date']));
};


$view_p['date'] //содержит время в формате time();

Функция прибавляет или отнимает количество секунд в $view_p['date']

   
 
 автор: jbs   (10.01.2007 в 05:18)   письмо автору
 
   для: zooppp   (10.01.2007 в 02:03)
 

скорее не "функция в цикле выполняется только один раз"
а цыкл выполняется один раз потому что $view_p больше не равен mysql_fetch_array($q_posts)

   
 
 автор: Trianon   (10.01.2007 в 09:22)   письмо автору
 
   для: jbs   (10.01.2007 в 05:18)
 

>а цыкл выполняется один раз потому что $view_p больше не равен mysql_fetch_array($q_posts)

Там не сравнение, а присваивание. Так что всё написано верно.

to zooppp:
Почему Вы считаете, что повторно функция не выполняется?

   
 
 автор: zooppp   (10.01.2007 в 14:15)   письмо автору
 
   для: Trianon   (10.01.2007 в 09:22)
 

potomu kak dalee vremya iz bazy vyvoditsya bez obrabotki etoj funktsiej. t.e. k nemu ne pribavlyaetsya 3600 sekund.
(sori za translit, s telefona pishu).

   
 
 автор: Trianon   (10.01.2007 в 14:23)   письмо автору
 
   для: zooppp   (10.01.2007 в 14:15)
 

Само собой - Вы затираете содержимое глобальной переменной. Операторами присваивания внутри функции.
Кстати, почему функция сложная такая?
Почему не написать просто

function t_zone ($in_time)

    global $time_zone;
    return intval($in_time) + $time_zone; 
}

   
 
 автор: zooppp   (10.01.2007 в 20:39)   письмо автору
 
   для: Trianon   (10.01.2007 в 14:23)
 

spasibo, dejstvitel'no, ne zametil :) a slozhnaya, potomu kak $time_zone mozhet byt' ne tol'ko +, no i -. eto nastrojka yuzerom chasovogo poyasa :) mozhet mozhno i prosche, no ya tol'ko takoe pridumal...

   
 
 автор: Trianon   (10.01.2007 в 20:56)   письмо автору
 
   для: zooppp   (10.01.2007 в 20:39)
 

можно подумать, простая с отрицательными не работает.

PS. Выкиньте свой телефон. Пишите Вы один - читают десятки людей.

   
 
 автор: zooppp   (11.01.2007 в 01:14)   письмо автору
 
   для: Trianon   (10.01.2007 в 20:56)
 

>можно подумать, простая с отрицательными не работает.
>
>PS. Выкиньте свой телефон. Пишите Вы один - читают десятки людей.

Я обязательно подумаю над Вашим предлажением по поводу моего телефона! А та функция, что вы написали, будет только прибавлять. Так что побольше конструктивности, пожалуйста...

И вообще, тема раскрыта. Спасибо за помощь.

   
 
 автор: Trianon   (11.01.2007 в 09:17)   письмо автору
 
   для: zooppp   (11.01.2007 в 01:14)
 

>Я обязательно подумаю над Вашим предлажением по поводу моего телефона!
Спасибо.

>А та функция, что вы написали, будет только прибавлять.
Я вообще-то проверил её, перед тем как писать. В т.ч. и на отрицательных значениях.
Так что вынужден вернуть Вам
>Так что побольше конструктивности, пожалуйста...

И вообще, тема раскрыта. Спасибо за помощь.
Не за что.

   
Rambler's Top100
вверх

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