Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) ошибка при выводе большого массива данных / 25 сообщений из 71, страница 1 из 3
29.03.2006, 11:47:46
    #33631721
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
работаю на локальном 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
29.03.2006, 11:54:56
    #33631751
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
таймаут?
...
Рейтинг: 0 / 0
29.03.2006, 11:56:09
    #33631754
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
Timeout 300 по умолчанию
...
Рейтинг: 0 / 0
29.03.2006, 12:04:33
    #33631795
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
что конкретно пишет эксплорер? точнее, что он получает от сервера?
...
Рейтинг: 0 / 0
29.03.2006, 12:05:42
    #33631800
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
Невозможно отобразить страницу
Эта страница сейчас недоступна. Возможно, это вызвано техническими проблемами на веб-узле, или требуется изменение параметров обозревателя.
...
Рейтинг: 0 / 0
29.03.2006, 12:08:28
    #33631809
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
это стандартное сообщение. код ошибки http посмотри.
...
Рейтинг: 0 / 0
29.03.2006, 12:11:28
    #33631818
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
где код ошибки посмотреть?

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

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

Замечание не по теме, а по верстке . Очень плохо выдавать на клиента тяжелые страницы, понятно, что если строк 1000, то ты никуда не денешься, но облегчить и эти 1000 строк тоже нужно у вас для каждого столбца (ячейки) прописывается один и тот же стиль. Я бы на вашем месте вынес стили столбцов в тег <COLGROUP> таким образом вы бы сэкономили приличное кол-во трафика.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
29.03.2006, 12:46:48
    #33631964
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
Код: 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
29.03.2006, 12:51:29
    #33631985
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
ну вот, а товарищ выдает всего-навсего четыреста строк. и вот код, который выдет десять тысяч строк.

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

но, опять-таки, если семь тысяч строк по килобайту с хвостом - и вот они восемь метров, то для четырехсот строк...
...
Рейтинг: 0 / 0
29.03.2006, 12:57:30
    #33632006
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
Я, наверное, тоже вру или чего-то не понимаю. Только что выдал отчет не в файл, а в броузер строк 56 000. И Апач и броузер чувствуют себя нормально.
Сейчас попробую найти ошибку, что выдавал Апач.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
29.03.2006, 13:00:25
    #33632013
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
Тредстартер говорил, что больше 400 строк. а больше 400 - это и миллион.;)))
Мда нужно объем выделяемой памяти увеличивать.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
29.03.2006, 13:07:53
    #33632044
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
че-то он примолк. подождем вестей :)
...
Рейтинг: 0 / 0
29.03.2006, 13:08:17
    #33632046
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
в 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
29.03.2006, 13:14:39
    #33632083
Владимир777
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
в броузере строки начинают появляться по 10-20, потом пропадают такое дерганье происходит раз 5-7 и невозможно отобразить страницу
...
Рейтинг: 0 / 0
29.03.2006, 13:23:21
    #33632123
@
@
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) ошибка при выводе большого массива данных
директивы set_time_limit в php.ini нет, это ты с функцией спутал.

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


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