Может кто-нибудь из вас помочь мне понять поведение, которое я испытываю при посещении этой страницы?
<html>
<body>
<?php
$liendb = mysql_connect("localhost","","");
mysql_select_db ("test");
for($i = 0; $i < 418; ++$i)
{
echo("Any old text<br />");
}
$resultatSQL = mysql_query("SELECT uid FROM nombres ORDER BY uid");
while($tab = mysql_fetch_array($resultatSQL, MYSQL_ASSOC))
{
echo("<p>".$tab['uid']."</p>");
echo("<br />\n");
}
mysql_close();
?>
</body>
</html>
Я экспортировал таблицу mysql, на которой основан этот пример, чтобы мы могли работать с одной и той же таблицей. Вот она:
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 06-01-2010 a las 21:49:50
-- Versión del servidor: 5.1.37
-- Versión de PHP: 5.3.0
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Base de datos: `test`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `nombres`
--
CREATE TABLE IF NOT EXISTS `nombres` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=43 ;
--
-- Volcar la base de datos para la tabla `nombres`
--
INSERT INTO `nombres` (`uid`) VALUES
(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);
Теоретически, я считаю, что на этой странице должно быть напечатано 418 строк «Любого старого текста», а затем напечатаны все записи таблицы «nombres», то есть числа от 1 до 42. На практике это происходит. Но если я изменю это магическое число, 418, возникнут проблемы.
Если я использую число меньше 418, Firefox предлагает загрузить страницу вместо того, чтобы просто показывать ее мне. Если я ее скачиваю, я получаю пустой файл ..
Если я использую число больше 418, я не получу все записи в таблице "nombres". Например, когда я использую 419, я получаю только цифры от 1 до 41. Когда я использую 420, я получаю только цифры от 1 до 40. И так до 454, где я получаю только номер 1. Остальная часть страницы, все следующее числа усекаются, включая закрывающее тело и HTML-теги.
Если я использую 455 или больше, я вообще не получаю никаких цифр!
Мои вопросы:
Кто-нибудь еще может воспроизвести это поведение?
Как вы могли бы объяснить это поведение?
Я использую сервер apache (на самом деле xampp)
Я напечатал phpinfo () и попросил firefox сохранить полученную страницу .. Вот она, сжатая.
www.angelfire.com / планета / shawninder / phpinfo.zip