我试图简单地读取一个MySQL表名“歌曲”并将“标题”列写入HTML。我刚开始使用MySQL,所以有人能解释为什么它不起作用吗?
(单列)SQL表如下所示:
+---------+
| TITLE |
+---------+
| Hello |
| World |
| Table |
| Value |
+---------+
以下是我在PHP页面中使用的代码
<ul>
<?php
$dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
$query = "SELECT title FROM songs";
$result = mysqli_query($dbc, $query);
$row = mysqli_fetch_array($result);
while ($row = mysqli_fetch_array($result)) {
echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px; display: none;" />';
echo '<span class="title">' . $row['title'] . '</span>';
echo '</li>';
}
?>
</ul>
没有输出。
答案 0 :(得分:2)
不需要第一个mysqli_fetch_array
。您可以删除此行:
$row = mysqli_fetch_array($result);
它应该正常工作。
答案 1 :(得分:0)
<ul>
<?php
$dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
$query = "SELECT title FROM songs";
$result = mysqli_query($dbc, $query);
//$row = mysqli_fetch_array($result);
while ($row = mysqli_fetch_row($result)) {
echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px; display: none;" />';
echo '<span class="title">' . $row['title'] . '</span>';
echo '</li>';
}
?>
</ul>
说明:
mysqli_fetch_array()为您提供数组(2维)中的整个结果集。
mysqli_fetch_row()从结果集中为您提供一个条目,并向前移动指针。 当你需要多次迭代结果时这不好,但在你的情况下没问题!
答案 2 :(得分:0)
你之前的元素上有一个display:none,所以输出可能会隐藏吗?从以下情况检查浏览器中的“页面源”:)
答案 3 :(得分:0)
试试这个:
<ul>
<?php
$dbc = mysqli_connect('localhost', 'root', 'pass', 'music');
$query = "SELECT title FROM `songs`";
$result = mysqli_query($dbc, $query);
//$row = mysqli_fetch_array($result); You don't need this
while ($row = mysqli_fetch_array($result)) {
echo '<li id="' . $row['title'] . '" data-title="' . $row['title'] . '">';
echo '<img class="X" src="X.png" style="width: 14px; margin: 2px 0 -2px -4px; display: none;" />';
echo '<span class="title">' . $row['title'] . '</span>';
echo '</li>';
}
?>
</ul>
看看这一行:
$query = "SELECT title FROM `songs`";
答案 4 :(得分:0)
请你否则可以消除连接错误的可能性:
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
而且,您能否通过将所有$ row ['title']替换为以下内容来编码以html格式显示的结果:
htmlspecialchars($row['title'])
HTML部分似乎没问题,所以也许你应该在while循环中的代码中尝试一些调试:
echo htmlspecialchars($row['title']); //only this within while loop
之后我们可以找出问题所在。