我试图从我的数据库中提取一些数据,并且循环表现得很奇怪。这是
我的代码:
<code>
$query = "SELECT DISTINCT * FROM users WHERE username LIKE '%$search%'";
$resultpage = "";
$result = mysqli_query($con,$query);
$rows = array();
$resultpage = "<table class='table table-striped table-hover><tbody><tr><td>Search Results</td></tr>";
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
foreach($rows as $row) {
foreach($rows as $field => $value) {
array_unique($rows);
$resultpage .= "<tr><td><a href='user?id=".$value["id"]."'>".$value["username"]."</a></tr></td>";
}
}
}
</code>
您可以看到输出here。
基本上,有重复条目的模式,有些条目甚至不会出现,直到你进一步向下列。
感谢您的帮助
答案 0 :(得分:2)
我现在正在努力:
<code>
$query = "SELECT DISTINCT * FROM users WHERE username LIKE '%$search%'";
$rs = mysqli_query($con,$query);
echo "<table class='table table-striped table-hover'><tbody><tr><td>Search Results</td></tr>";
while($row = mysqli_fetch_assoc($rs)) {
$id = $row["id"];
$username = html_encode($row["username"]);
echo "<tr><td><a href='user.php?id=$id'>$username</a></td></tr>";
}
echo "</table>";
</code>
答案 1 :(得分:1)
在迭代$rows
之前,您需要结束while循环。让while循环填充数组,然后迭代它。就像现在一样,当你填充它时,你会遍历$rows
数组。
所以这里发生的是:
找到名称1并将其添加到数组 - &gt;数组有1个元素。打印此元素。
找到名称2并将其添加到数组中 - &gt;数组有2个元素。两个元素都打印出来。
等。等
以下是修复:
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
foreach($rows as $row) {
foreach($row as $field => $value) {
array_unique($row);
$resultpage .= "<tr><td><a href='user?id=".$value["id"]."'>".$value["username"]."</a></tr></td>";
}
}