为什么这不列出我的数据库的内容?我认为id应该做的...打印出一份内容列表(作者,标题,类别,年份和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 />';
}
?>
答案 0 :(得分:0)
要在php中连接字符串变量,你应该这样做:
$my_bigger_string="some string variable" . $my_string . "some more words";
尝试将其应用于所有字符串,看看会发生什么。
答案 1 :(得分:0)
您的最新版本存在多个问题:
问题#1:
您应该使用mysql_fetch_
的某种变体来从mysql_query()返回的资源中获取行。使用mysql_result
可能效率低下。通常,人们使用mysql_fetch_assoc()。这将返回一个数组,然后您可以使用其键访问该数组,这取决于您使用的mysql_fetch_
函数。例如,如果您尝试为当前行获取名为'id'
的列,则需要使用'id'
作为数组的键来检索该列。
问题#2:
你的循环错了。
for ($j = 0; $j < $rows; ++$i)
应为for ($j = 0; $j < $rows; ++$j)
。请注意,++$i
已更改为++$j
。否则,你有一个无限循环(直到PHP达到超时)。
问题#3:
mysql_num_rows()
可以返回FALSE。
根据文档,该函数将返回行数或失败时返回FALSE。虽然FALSE可以强制转换为0,但我不想依赖于此。
另外,如果你购买了这本书,我希望你没有支付全价。这些mysql_
方法已被弃用。因此,使用mysqli或PDO扩展名更为有用。
根据您的最新修改,您已修复问题#2。在输入循环之前添加var_dump($rows);
行* 以仔细检查您是否有超过0行。
另外,您检查了错误日志吗?找到您的错误日志,看看它是否在那里显示错误而不是您的浏览器。这可以解释为什么你会看到白屏。