powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ошибка при выводе большого массива данных
25 сообщений из 71, страница 1 из 3
(PHP) ошибка при выводе большого массива данных
    #33631721
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
работаю на локальном mysql сервере
есть простой скрипт

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
<?
  include "../dbconf.inc.php";
 include "../config.php";

#include "header.htm";

/*
 $request = 'UPDATE delf_company
             SET click=click+1
             WHERE id='.$id;
 $result  = mysql_query($request);
*/

$id =  $_GET['id']; # добавлено SKV

 $request = 'SELECT title
             FROM delf_price
             WHERE id='.$id;

 $result  = mysql_query($request);
 $row     = mysql_fetch_array($result);

 echo '<div class="sx8" style="margin-bottom:10px;">Прайс-лист "'.$row[title].'"</div>';

 #$orderby = "title";
 $request = 'SELECT *
             FROM delf_price
             WHERE parent='.$id;

 $result  = mysql_query($request);
?>

<table width="100%" border="0" cellpadding="5" cellspacing="0" class="sx1"><tr>
 <td class="td1">Наименование</td>
 <td class="td1">Дополнительно</td>
 <td class="td1">Фасовка</td>
 <td class="td1">Производ.</td>
 <td class="td1">Ед.изм.</td>
 <td class="td1">Опт</td>
 <td class="td1">Розница</td>
</tr>

<?
 while ($row = mysql_fetch_array($result))
 {
  echo '<tr style="">
         <td class="td1">'.$row[title].' </td>
         <td class="td1">'.$row[cdata].' </td>
         <td class="td1">'.$row[packaging].' </td>
         <td class="td1">'.$row[producer].' </td>
         <td class="td1">'.$row[type].' </td>
         <td class="td1">'.$row[price_opt].' </td>
         <td class="td1">'.$row[price_roz].' </td>
        </tr>';
 }           
 echo '</table>';

 
?>


проблема если выборка больше 400 строк explorer пишет невозможно отобразить страницу
может надо исправить настройки в apache?
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631751
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
таймаут?
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631754
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timeout 300 по умолчанию
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631795
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
что конкретно пишет эксплорер? точнее, что он получает от сервера?
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631800
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невозможно отобразить страницу
Эта страница сейчас недоступна. Возможно, это вызвано техническими проблемами на веб-узле, или требуется изменение параметров обозревателя.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631809
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
это стандартное сообщение. код ошибки http посмотри.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631818
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где код ошибки посмотреть?

Не удается найти сервер или ошибка DNS
Internet Explorer
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631839
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
мда.
похоже, в какой-то момент апач просто перестает откликаться.
это точно связано с размером выборки? попробуй раскомментировать хидер и посмотри - будет он или нет.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631866
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно связано с размером, если выбирается меньше 400 строк все железно работает.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631886
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
не знаю чем тебе помочь. в засвеченном коде не вижу абсолютно ничего, что может дать такой эффект. увы.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631906
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
что могу методологически посоветовать: организуй лог (хочешь - в базе, хочешь простым файлом на диске) и пиши из скрипта туда что происходит.
отлови хотя бы сам момент падения.
потому что происходит следующее: ты отправляешь запрос к серверу, он начинает выполнять скрипт и в какой-то момент падает. просто падает.
никакой ответ браузеру при этом не отдается, отсюда такое сообщение об ошибке.
может я неправ, но пока мне все видится именно так.
возможно, тебе повезло найти какой-то баг в php или мускуле. такое бывает, я сам сталкивался с абсолютно мистическим поведением php, но только один раз.

короче, заведи лог и отлови момент падения. тогда пиши, будем смотреть дальше.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631919
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема втом, что ты выдаешь на клиента сразу много информации. Апач просто рубит это и все. Посмотри лог ошибок, там есть номер ошибки и описание. У меня было такое, я написал некорректный запрос и на клиента выдавалось несколько тысяч строк и Апач просто вис. Лог Апача смотри.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631935
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант отключи буффер (в php.ini output_buffering=off) и в цикле вызывай flush(). после изменения настроек РНР перезапуссти сервер и запусти скрипт еще раз. Ну и лог ошибок Апача запости. Обычно это error.log.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631943
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
может и так. я выдавал на клиента довольно много строк в гриде (больше двух тысяч), причем html был понаверченней (стили, скрипты, ссылки) - и все работало. четыреста строк что для апача что для эксплорера не должны представлять проблемы, однозначно.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631960
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я выдавал на клиент около 7 000 строк и сервер просто вис. Нужно было убивать поток, который обрабатывал запрос клиента, по-другому - никак.
Когда ограничил кол-во строк ошибка ушла и сервер перестал виснуть.

Замечание не по теме, а по верстке . Очень плохо выдавать на клиента тяжелые страницы, понятно, что если строк 1000, то ты никуда не денешься, но облегчить и эти 1000 строк тоже нужно у вас для каждого столбца (ячейки) прописывается один и тот же стиль. Я бы на вашем месте вынес стили столбцов в тег <COLGROUP> таким образом вы бы сэкономили приличное кол-во трафика.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631964
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<table border = "5">
<? for( $i =  0 ; $i <  10000 ; $i++ ) { ?>
        <tr>
            <td><?=$i?>Наименование</td>
            <td>Дополнительно</td>
            <td>Фасовка</td>
            <td>Производ.</td>
            <td>Ед.изм.</td>
            <td>Опт</td>
            <td>Розница</td>
        </tr>
<? } ?>
</table>

никаких проблем. а я уж думал что отстал от жизни.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33631985
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
ну вот, а товарищ выдает всего-навсего четыреста строк. и вот код, который выдет десять тысяч строк.

нет, проблема не в количестве строк.
возможно, дело в объеме памяти, выделяемой скрипту. по умолчанию это восемь метров. если буфер результата мускула распределяется в этом же пространстве - могут быть проблемы с тяжелым результатом.

но, опять-таки, если семь тысяч строк по килобайту с хвостом - и вот они восемь метров, то для четырехсот строк...
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632006
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я, наверное, тоже вру или чего-то не понимаю. Только что выдал отчет не в файл, а в броузер строк 56 000. И Апач и броузер чувствуют себя нормально.
Сейчас попробую найти ошибку, что выдавал Апач.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632013
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тредстартер говорил, что больше 400 строк. а больше 400 - это и миллион.;)))
Мда нужно объем выделяемой памяти увеличивать.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632044
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
че-то он примолк. подождем вестей :)
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632046
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в php.ini

max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 16M ; Maximum amount of memory a script may consume (8MB)
set_time_limit = 30
mssql.timeout = 30


вылетает все равно
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632083
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в броузере строки начинают появляться по 10-20, потом пропадают такое дерганье происходит раз 5-7 и невозможно отобразить страницу
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632123
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
директивы set_time_limit в php.ini нет, это ты с функцией спутал.

так вот, в начале скрипта сделай вызов set_time_limit( 0 ) и посмотри что будет.
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632143
Владимир777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тоже самое дергается и ошибка
...
Рейтинг: 0 / 0
(PHP) ошибка при выводе большого массива данных
    #33632155
@
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
@
Гость
тебе советовали посмотреть логи апача. что там?
...
Рейтинг: 0 / 0
25 сообщений из 71, страница 1 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ошибка при выводе большого массива данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]