Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Непонятки с mysql_fetch_row


Автор: kaa 13.7.2006, 22:04
Код

$str_sql = "SELECT id, login, male_female, on_line, up_time FROM table_user WHERE nick_list_flag='n'";
        $res = mysql_query($str_sql, $connection) or die ("Íåâîçìîæíî âûáðàòü èíôîðìàöèþ èç òàáëèöû ïîëüçîâàòåëåé 6");
        while($result_array = mysql_fetch_row($res))
        {
            $str_sql = "SELECT delay_update FROM table_user_bonus WHERE id_out=".$result_array[0];
            $res = mysql_query($str_sql, $connection) or die("NEW ERROR 1");
            $delay = mysql_result($res,0,0);
            $difference = date("U")-$result_array[4];
            if($difference<$delay)
            {    
                if($result_array[3]=='y')
                {
                    $nick = $result_array[1];
                    $mf = $result_array[2];
                    $block_add_user = $block_add_user."<div><div>".$nick."</div><div>".$mf."</div></div>";
                }
                else
                {
                    $nick = $result_array[1];
                    $mf = $result_array[2];
                    $block_del_user = $block_del_user."<div><div>".$nick."</div><div>".$mf."</div></div>";
                }
            }
            else
            {
                $str_sql = "UPDATE table_user SET nick_list_flag='y' WHERE id=".$result_array[0];
                mysql_query($str_sql,$connection) or die ("Íåâîçìîæíî îáíîâèòü èíôîðìàöèþ â òàáëèöå ïîëüçîâàòåëåé 66");
            }
        }


Доподлинно известно что самы первый запрос возвращает две записи (проверено воспомогательным запросом с COUNT), но цикл пробегается всего ОДИН раз! Почему?!  smile  Может я где не то делаю? 
Притом сначала выгреьает два значения но пробегается по одному, а потом одно и пробегается по нему...   smile  

Автор: Burrr 14.7.2006, 09:23
1) По-моему ты ошибся форумом! ;)
2) А что если исользовать не  
Код

while($result_array = mysql_fetch_row($res))  {
 , а
Код

for ($i = 0; $i < mysql_num_row($res); $i++) {
     // Operations
}

 

Автор: kaa 14.7.2006, 10:15
ЁЁЁ -маё! Точняк, запарил!
Пардону 
Спачиба за атвет попробую!

Добавлено @ 10:16 
И просьюочка админам - если можна темку перекиньте куда нада  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)