我有以下代码。此代码不显示任何结果。请解释一下是什么问题?
<?php
require_once("connnection.php");
$con=mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
<div style="position:absolute;top:200px;right:65px; padding:10px; background-color:#CCFFFF; width:300px; height:400px;">
<hr>
<p><strong>Latest posts</strong></p>
<hr style="position:relative; top:40px; left:30px; width:80%; ">
<?php
$sql = "SELECT question FROM comment ORDER BY id DESC LIMIT 5";
if ($result = mysqli_query($con, $sql)) {
/* fetch associative array */
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[3]);
}
/* free result set */
}
?>
我想从db获得五个最新问题并显示它.DB有五条记录。表评论有4个字段。 &#34;问题&#34;是最后一个领域。
答案 0 :(得分:2)
$row[3]
未定义。您需要使用$row[0]
while ($row = mysqli_fetch_row($result)) {
printf( "%s\n", $row[0] );
}
可替换地:
while ($row = mysqli_fetch_assoc($result)) { // notice the use of `fetch_assoc`
echo $row['question'] . "\n";
}
答案 1 :(得分:1)
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[3]);
}
您只选择questions
字段,但以某种方式枚举第三个字段。您可以选择使用mysqli_fetch_assoc作为以下内容,以避免将来出现任何混淆
while ($row = mysqli_fetch_assoc($result)) {
printf("%s\n", $row['questions']);
}
或者您可以使用$row[0]
代替$row['3']
答案 2 :(得分:1)
你可以使用echo $ row ['question']是问题的列名是“问题”,否则找到从0开始的列索引,并将值设为$ row [0](例0)
while ($row = mysqli_fetch_row($result)) {
echo $row['question']."<br>";
}
建议您使用列名,因为如果将来更改表结构,您的代码将不会受到更改的影响