Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтобы надписи появлялись по мере выполнения? 
:(
    Опции темы
Dims
Дата 18.1.2008, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



У меня PHP страничка выполняет серию SQL-запросов и в конце каждого пишет, сколько записей affected. Однако, весь этот текст появляется в самом конце, когда уже всё выполнилось.

Можно ли сделать так, чтобы информация появлялась по мере выполнения?


PM MAIL   Вверх
Dims
Дата 18.1.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Я навставлял везде flush() и ob_flush(), но всё равно данные начинают появляться не сразу, а когда уже много текста накопится. Почему?
PM MAIL   Вверх
skyboy
Дата 18.1.2008, 09:45 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Dims @  18.1.2008,  08:34 Найти цитируемый пост)
 Почему?

Луна в знаках Девы - очевидно, поэтому.
Почему бы не привести код, выбросив обработку запросов и просто продемонстрировав логику вывода?
PM MAIL   Вверх
GeneralElectric
Дата 18.1.2008, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Цитата(Dims @  18.1.2008,  09:34 Найти цитируемый пост)
Я навставлял везде flush()  но всё равно данные начинают появляться не сразу, а когда уже много текста накопится. Почему? 

в описании этой функции в мануале написано
PM MAIL   Вверх
MoLeX
Дата 18.1.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Dims http://php.ru/manual/function.flush.html

а собствеено зачем  
Цитата

Чтобы надписи появлялись по мере выполнения




--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Dims
Дата 18.1.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Вот эта страничка вызывается из формы:

Код

<?php 
    include("../include/open.php");
    include("../include/makeAuth.php");
    $filename=$HTTP_POST_VARS['filename'];
    if( $HTTP_POST_VARS['clear'] == 'on' ) {
        $clear = true;
    }
    else {
        $clear = false;
    }
    
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
    <head>
    
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <TITLE>Restoring database...</TITLE>

    </head>
    <body>
    
    
        <?php include "../include/doRestore.php"; ?>
        <?php include("../include/close.php");?>

    </body>
</html>



а вот такой, примерно, код находится в файле doRestore:

Код

<?php 


    $handle = fopen("../backup/" . $filename, "r");    
    if( $handle ) {    
        
        
        if( $clear ) {
            echo( "Clearing tables...<br>" );
            
            flush();
            ob_flush();

            echo "Dict... ";
            
            $query = "DELETE FROM Dict";
            if( mysql_query( $query )) {
                echo mysql_affected_rows() . " affected<br>";
            }
            else {
                echo( mysql_error() . "<br>" );
            }
            
            flush();
            ob_flush();
            
            echo "Word... ";
            $query = "DELETE FROM Word";
            if( mysql_query( $query )) {
                echo mysql_affected_rows() . " affected<br>";
            }
            else {
                echo( mysql_error() . "\n" );
            }
            
            flush();
            ob_flush();

            echo "Comment... ";
            $query = "DELETE FROM Comment";
            if( mysql_query( $query )) {
                echo mysql_affected_rows() . " affected<br>";
            }
            else {
                echo( mysql_error() . "<br>" );
            }
            
            echo "Arcticle... ";
            $query = "DELETE FROM Article";
            if( mysql_query( $query )) {
                echo mysql_affected_rows() . " affected<br>";
            }
            else {
                echo( mysql_error() . "<br>" );
            }
            
            flush();
            ob_flush();

// и так далее, там потом ещё добавление записей и т.п.




Добавлено через 3 минуты и 4 секунды
Цитата(GeneralElectric @  18.1.2008,  10:16 Найти цитируемый пост)

в описании этой функции в мануале написано 

Я что-то не уловил. Не могли бы Вы подсказать?

Добавлено через 8 минут и 30 секунд
P.S. Результат просматривается в FireFox, HTML без таблиц (это насчёт мануала).

Добавлено через 9 минут и 38 секунд
Цитата(MoLeX @  18.1.2008,  10:25 Найти цитируемый пост)
а собствеено зачем  

Для отладки. У меня работает длительный скрипт, не хочу ждать, пока он весь закончится, хочу сразу увидеть, если что-то пошло не так.
PM MAIL   Вверх
MoLeX
Дата 18.1.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(Dims @  18.1.2008,  12:56 Найти цитируемый пост)
$HTTP_POST_VARS['clear']

ооо, ужас.. 
Dims отказывайся от написания $HTTP_POST_VARS, пиши просто $_POST. тем более в 6 версии это не будет полностью поддерживаться

Добавлено через 1 минуту и 15 секунд
Цитата(Dims @  18.1.2008,  12:56 Найти цитируемый пост)
Для отладки. У меня работает длительный скрипт, не хочу ждать, пока он весь закончится, хочу сразу увидеть, если что-то пошло не так.

вполне размуная причина) но я бы подождал, кофе попил бы  smile 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Dims
Дата 18.1.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Цитата(MoLeX @  18.1.2008,  13:08 Найти цитируемый пост)
Dims отказывайся от написания $HTTP_POST_VARS, пиши просто $_POST. тем более в 6 версии это не будет полностью поддерживаться

Понял, приму к сведению. Но от этого выводиться как мне надо не станет, так что вопрос остаётся.

Добавлено через 1 минуту и 38 секунд
Цитата(MoLeX @  18.1.2008,  13:08 Найти цитируемый пост)
вполне размуная причина) но я бы подождал, кофе попил бы

Из-за ошибок он работает много часов. Там возникает почему-то ошибка уникальности ключа, но повторов ключа у меня, вроде бы, нет. Хочу разобраться.

Так что, нельзя сделать, чтобы выводилось по ходу?

PM MAIL   Вверх
KEM
Дата 18.1.2008, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Возможно из за этого
Цитата

Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.

--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
MoLeX
Дата 18.1.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Цитата(KEM @  18.1.2008,  16:08 Найти цитируемый пост)
Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.


типо - ИЕ в отказную не хочет выводить пока все данные не получит (англ. плохо знаю так что поправте если ошибся)



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Dims
Дата 18.1.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Народ, я же написал, что смотрю в FireFox...
PM MAIL   Вверх
KEM
Дата 18.1.2008, 16:38 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 28.1.2005

Репутация: нет
Всего: 2



Цитата

типо - ИЕ в отказную не хочет выводить пока все данные не получит (англ. плохо знаю так что поправте если ошибся)


типа пока в буфере лежит меньше 255 байт, х выведет
Пробывал насильственно учеличить буфер вывода, константой длинной в 256 байт, ничего не вышло не в опере не в иа
--------------------
Мы растворяем сознание жизни, реальностью стал бешеный ритм...
PM MAIL   Вверх
FractalizeR
Дата 19.1.2008, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 27.12.2007
Где: Россия/Москва

Репутация: 2
Всего: 4



Поменяйте местами вызовы ob_flush и flush.

Должно быть так:

Код

ob_flush();
flush();



--------------------
Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя.
PM MAIL   Вверх
MoLeX
Дата 21.1.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



KEM спасибо за разъяснения)


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.