此页面的目标是检查我的数据库中的标签表,并生成包含每行标签名称和标签图像的无序列表。下面的代码可以让我完美地做到这一点:
<?php
$sql = "SELECT * FROM tags";
echo "<ul id='ulTags'>";
$result = mysqli_query($conn, $sql);
while ($row = $result->fetch_assoc()){
echo '<div class="imageContainerTags"><a href="specificTag.php?='.$row['tag'].'"><li class="listTags"><h1>'.$row['tag'].'</h1></li><img class="tagThumbnail" src="images/Tags/'.$row['path'] .'" alt="Random image" /></a></div>';
}
echo "</ul>";
?>
但是,如果您有权限,我决定实现从数据库中删除标签的可能性。每个用户都有一个权限,如果您的权限为 1,您应该在每个图像下看到一个删除按钮。这是具有该功能的更新代码:
<?php
$userId = $_SESSION['id'];
$sql = "SELECT * FROM tags";
$result = mysqli_query($conn, $sql);
$sql2 = "SELECT * FROM user where id='$userId'";
$result2 = mysqli_query($conn, $sql2);
$getResult2 = mysqli_fetch_assoc($result2);
$userP = $getResult2['permission'];
echo "<ul id='ulTags'>";
if (isset($_SESSION['id']) && $userP == 1) {
while ($row = $result->fetch_assoc()){
echo '<div class="imageContainerTags"><a href="specificTag.php?='.$row['tag'].'"><li class="listTags"><h1>'.$row['tag'].'</h1></li><img class="tagThumbnail" src="images/Tags/'.$row['path'] .'" alt="Random image" /></a></div>';
echo "<form method='POST' action='".deleteTag($conn)."'>
<input type='hidden' name='id' value='".$row['id']."'>
<input type='hidden' name='tag' value='".$row['tag']."'>
<input type='hidden' name='path' value='".$row['path']."'>
<button id='delTag' type='submit' name='tagDelete'>Delete Tag</button>
</form>";
}
} else {
while ($row = $result->fetch_assoc()){
echo '<div class="imageContainerTags"><a href="specificTag.php?='.$row['tag'].'"><li class="listTags"><h1>'.$row['tag'].'</h1></li><img class="tagThumbnail" src="images/Tags/'.$row['path'] .'" alt="Random image" /></a></div>';
}
};
echo "</ul>";
?>
不幸的是,代码似乎存在问题,它仅回显一个标签,而不是应有的所有标签。第一段代码呼应了所有标签,但那是在我尝试添加删除按钮之前。任何线索将不胜感激。
最佳答案
调试的最佳方法是在代码的每个部分插入回显,以查看其出轨的位置。
首先检查输出的 html 页面源以查看标签是否正确回显(没有 html 错误)。
我会将 echo $result->num_rows 放置在 if else 子句之前,以查看返回的总标签数。
如果结果中有多个标签,但只显示一个标签,那么我将查看该标签是返回结果中的最后一个标签还是第一个标签。
检查这些以开始......
注意:为什么不使用一致的编码风格?
//One place you use
$getResult2 = mysqli_fetch_assoc($result2); // functional programming
// another place you use
$row = $result->fetch_assoc(); // OOP programming
// Stick to one style, preferably OOP
关于php - 这段代码不起作用的任何特殊原因?我似乎无法弄清楚这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023608/