我这里有代码,应该从我的mysql数据库中打印一个html表。当我在网络浏览器中打开页面时,它是一个空白页面。
<html>
<body>
<?php
$connection = mysql_connect('localhost', 'admin', 'may122000');
mysql_select_db('contacts');
$query = "SELECT * FROM users";
$result = mysql_query($query);
echo "<table>"; // start a table tag in the HTML
while($row = mysql_fetch_array($result)){
echo "<tr><td>" . $row['first_name'] . "</td><td>" . $row['last_name'] . "</td></tr>"; //$row['phone'] the index here is a field name
}
echo "</table>";
mysql_close();
?>
</body>
</html>
答案 0 :(得分:1)
使用mysql_fetch_array
时,您将获得带有数字索引的结果数组。
mysql_fetch_assoc
将为您提供一个关联数组,就像您想要的那样。
注意:不推荐使用mysql_*
。
while($row = mysql_fetch_assoc($result)){
echo "<tr><td>" . $row['first_name'] . "</td><td>" . $row['last_name'] . "</td></tr>"; //$row['phone'] the index here is a field name
}
如果您仍想使用mysql_fetch_array
,则必须传递第二个参数:
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
答案 1 :(得分:0)
首先是用户mysqli
或PDO和mysqli_fetch_assoc()
,因此您只有关联数组。空白页可能是隐藏错误的结果,它存储在服务器上的error.log中 - 看看它并回复给我们。
答案 2 :(得分:0)
答案 3 :(得分:0)
改进 - 其中一些已经在其他帖子中提到过但都以一种形式组合在一起:
<?php
$connection = mysqli_connect('localhost', 'admin', '****', 'contacts');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT first_name, last_name, phone FROM users";
$result = mysqli_query($connection, $query) or die(mysqli_error($connection));
echo "<table>"; // start a table tag in the HTML
while($row = mysqli_fetch_array($result)){
echo "<tr><td>" . $row['first_name'] . "</td><td>" . $row['last_name'] . "</td></tr>"; //$row['phone'] the index here is a field name
}
echo "</table>";
mysqli_close($connection);
?>
所以,首先关闭MySQL_ *已经升级到Mysqli,并进行了一些小的重新格式化, select *已替换为仅选择所需的列。 结束语句已正确设置。
首先,如果您的连接失败,错误捕获会将此输出到屏幕。在产品发布或公开发布页面时删除此项。
如果SQL查询错误输出错误,则会产生一个(相当简陋的)错误捕获。同样,这应该在生产中删除,但将帮助您找到SQL错误。
如果没有SQL错误返回,你的数据库中有一个空表,或者某种PHP错误,但是从代码示例中给出的最可能的错误是你的PHP没有运行MySQL并且只会运行PDO或MySQLi。
你还说&#34;当我在浏览器中打开页面时,它是一个空白页面,如果页面的来源是空白的 - 就像它没有显示那样
<html>
等,然后这是PHP执行失败的标志,你有错误的PHP,如错误日志文件中所述。
如上所述,代码示例中最可能的原因是,您的PHP版本不支持MySQL。
如果你的
<table>
标记出现在HTML源代码中,这表示While子句未运行,这意味着您的Datbase表为空,并且没有要输出的数据。
希望这会有所帮助。但第一个要点是升级到MySQLi :)