我遇到了这个奇怪的问题。 有七位管理员:darth,jane,luke,najin,root,sam和sydney。
CODE:
<table>
<tr>
<th style="text-align: left; width: 200px;">Username</th>
<th colspan="2" style="text-align: left;">Action</th>
</tr>
<?php
$sql = "SELECT * FROM admins ORDER BY Admin_Username ASC";
$result = mysqli_query($connection, $sql);
$admin = mysqli_fetch_assoc($result);
while($admin = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?php echo ($admin["Admin_Username"]); ?></td>
<td><a href="edit_admin.php?id=<?php echo urlencode($admin["id"]); ?>">Edit</a></td>
<td><a href="delete_admin.php?id=<?php echo urlencode($admin["id"]); ?>" onclick="return confirm('Are you sure you want to delete this admin?');">Delete</a></td>
</tr>
<?php
}
?>
</table>
如果我使用ASC
订单,第一个管理员,darth不会显示在循环中,如果我使用DESC
订单,则最后一个管理员,悉尼不会显示。
这可能是什么问题?
答案 0 :(得分:4)
摆脱第一条$admin =
行。
你的循环将获取所有这些;你不需要单独获取第一个(如果这样做就是跳过它,因为你的循环会在第一个被写出之前立即获取第二个)。
答案 1 :(得分:3)
删除此行
$admin = mysqli_fetch_assoc($result);//You already fetching the first result here
答案 2 :(得分:2)
您在$admin = mysqli_fetch_assoc($result);
循环之前对while
进行了冗余调用,这将导致您跳过结果的第一行。只需删除它就可以了。
答案 3 :(得分:2)
<?php
$sql = "SELECT * FROM admins ORDER BY Admin_Username ASC";
$result = mysqli_query($connection, $sql);
while($admin = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?php echo ($admin["Admin_Username"]); ?></td>
<td><a href="edit_admin.php?id=<?php echo urlencode($admin["id"]); ?>">Edit</a></td>
<td><a href="delete_admin.php?id=<?php echo urlencode($admin["id"]); ?>" onclick="return confirm('Are you sure you want to delete this admin?');">Delete</a></td>
</tr>
<?php
}
?>
答案 4 :(得分:0)
$admin = mysqli_fetch_assoc($result);
这必须在while循环中所以你可以在
时去除/删除上面的旧值