Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我运行这段PHP代码时,屏幕上不会显示任何内容_Php_Html_Mysql - Fatal编程技术网

当我运行这段PHP代码时,屏幕上不会显示任何内容

当我运行这段PHP代码时,屏幕上不会显示任何内容,php,html,mysql,Php,Html,Mysql,你知道这为什么没有列出我数据库的内容吗?我认为我应该做的。。。打印出一份目录(作者、标题、类别、年份和ISBN)。但我什么也得不到。没有错误或任何事情。。。。即使我在里面放了一个echo语句,屏幕上似乎也没有打印任何东西 <?php // query.php require_once 'login.php'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if (!$db_server) die

你知道这为什么没有列出我数据库的内容吗?我认为我应该做的。。。打印出一份目录(作者、标题、类别、年份和ISBN)。但我什么也得不到。没有错误或任何事情。。。。即使我在里面放了一个echo语句,屏幕上似乎也没有打印任何东西

<?php // query.php
require_once 'login.php';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);

if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());

mysql_select_db($db_database)
or die("Unable to select database: " . mysql_error());

$query = "SELECT * FROM classics"; 
$result = mysql_query($query);

if (!$result) die ("Database access failed: " . mysql_error()); 

$rows = mysql_num_rows($result);

for ($j = 0; $j < $rows; ++$j)
{
echo 'Author' . mysql_result($result,$j,'author') . '<br />';
echo 'Title' . mysql_result($result,$j,'title') . '<br />';
echo 'Category' . mysql_result($result,$j,'category') . '<br />';
echo 'Year' . mysql_result($result,$j,'year') . '<br />';
echo 'ISBN' . mysql_result($result,$j,'isbn') . '<br />';
} 
?>

要在php中连接字符串变量,您应该这样做:

$my_bigger_string="some string variable" . $my_string . "some more words";

尝试将其应用于所有字符串,看看会发生什么。

最新版本存在多个问题:

问题#1: 您应该使用mysql\u fetch\u的一些变体,以便从返回的资源中获取行。使用mysql\u result可能效率低下。通常,人们使用。这将返回一个数组,然后您可以使用它的键访问它,这取决于您使用的
mysql\u fetch\u
函数。例如,如果试图为当前行获取名为
'id'
的列,则需要使用
'id'
作为数组的键来检索该列

问题#2: 你的循环是错误的。
for($j=0;$j<$rows;++$i)
应该是($j=0;$j<$rows;++$j)。注意,
+$i
已更改为
+$j
。否则,您将有一个无限循环(直到PHP达到超时)

问题#3:
mysql\u num\u rows()
可以返回FALSE。 根据文档,函数将在失败时返回行数或FALSE。虽然FALSE可以强制为整数0,但我不喜欢依赖于此

另外,如果你买了这本书,我希望你没有支付全额。这些方法已被弃用。因此,使用or扩展更有用


根据您最近的编辑,您已修复了问题2。添加
var\u转储($rows)行*在您进入循环进行双重检查之前,您有超过0行


另外,您是否检查了错误日志?找到错误日志,查看它是否在那里而不是浏览器上显示错误。这就解释了为什么你会看到一个白色的屏幕。

你能把代码减少到你的问题仍然出现的最小数量吗?嗯。我希望我知道错误在哪里,但现在我只是有点盲目地遵循这本书。我会看看是否能找到一个较短的示例。白色死亡屏幕=错误检查\显示已关闭。没有更改,仍然是一个空白浏览器。我看到ifs后缺少括号。。。第7行不是少了一个分号吗?你能查一下你的错误日志吗?你在使用什么设置?泰。我想现在一切都好了。我对网络语言和数据库仍然很陌生。