【问题标题】:When I run this PHP code nothing prints to the screen [closed]当我运行此 PHP 代码时,屏幕上没有任何内容[关闭]
【发布时间】:2013-07-06 07:59:24
【问题描述】:

任何想法为什么这没有列出我的数据库的内容?我认为 id 应该做的...是打印出内容列表(是作者、标题、类别、年份和 ISBN)。但我什么也没得到。没有错误或任何东西......即使我在那里放了一个回声语句,似乎没有任何东西打印到屏幕上......

<?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 html mysql


【解决方案1】:

您的最新版本存在多个问题:

问题 #1: 您应该使用mysql_fetch_ 的一些变体,以便从mysql_query() 返回的资源中获取行。使用mysql_result 可能效率低下。通常,人们使用mysql_fetch_assoc()。这将返回一个数组,然后您可以使用其键访问该数组,这取决于您使用的 mysql_fetch_ 函数。例如,如果您尝试为当前行获取名为 'id' 的列,您希望通过使用 'id' 作为数组的键来检索该列。

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

问题 3: mysql_num_rows() 可以返回 FALSE。 根据文档,该函数将在失败时返回行数或 FALSE。虽然 FALSE 可以强制为整数 0,但我不喜欢依赖这个。

另外,如果您购买了这本书,我希望您没有支付全价。这些mysql_ 方法已被弃用。因此,改用mysqliPDO 扩展会更有用。


根据您的最新编辑,您已解决问题 #2。在进入循环之前添加var_dump($rows); 行 * 以仔细检查是否有超过 0 行。

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

【讨论】:

  • 泰。我认为现在一切都很好。我对网络语言和数据库还是很陌生。
【解决方案2】:

要在 php 中加入字符串变量,你应该这样做:

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

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

【讨论】:

  • 没有变化,仍然是空白浏览器。
  • 我看到 ifs 后面缺少括号...并且第 7 行没有缺少分号吗?
  • 你能检查你的错误日志吗?您使用的是什么设置?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-22
  • 2020-03-22
  • 1970-01-01
  • 2021-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多