到目前为止,我试图限制用户多次喜欢某个帖子。问题是,当我在某个帖子上单击"喜欢"时,每次单击链接时,点赞计数都会上升,即使它应该仅限于一个。
这是用户.php文件:
echo "<a href='likes.php?id=$row[0]'>$row[6]</a>";
"id=$row[0]"表示数据库中的id_post列。"$row[6]"是数据库中显示类似计数的列。
这是喜欢.php文件:
<?php
include 'db.php';
connect();
$id = $_GET['id'];
$sql1 = "SELECT * FROM posts";
$result1 = mysqli_query($link, $sql1) or die(mysqli_error($link));
$row = mysqli_fetch_row($result);
if ($row[6] == 0) {
$sql2 = "UPDATE posts SET likes = likes + 1 WHERE id_post = '$id'";
$result2 = mysqli_query($link, $sql2) or die(mysqli_error($link));
}
if ($row[6] == 1) {
exit(header("Location: user.php"));
}
header("Location: user.php");
?>
我的代码有什么问题?
SELECT * FROM posts
您的查询是从 posts 表中选择所有行,而不是根据 $id 变量中的 ID 进行筛选。
尝试将查询更改为:
SELECT * FROM posts WHERE COLUMN_NAME = '$id'
这样$row[6] 将引用帖子表中的正确 ID。