我为这个简单的问题道歉,但我有一个完整的空白,因此标题的措辞含糊不清。
我已经建立了一个简单的PHP / MySQL用户偏好系统,除了一个部分外,它可以正常工作。一旦用户对另一个用户有所帮助,我就无法想到如何向用户展示他们已经偏爱该用户。
这是我到目前为止所做的:
if (($user_data['username'] == $profile_data['username']) === false) {
if () { ?>
// Favourite user
<?php } else { ?>
//See whether favourited or unfavourite user
<?php } } ?>
favourites
的表格结构只有两列,favouritee
是受欢迎的个人资料,而favouriter
是当前用户最喜欢的。此表连接到主users
表,列由用户名字符串填充。
修改
这是我到目前为止所得到的:
$username = $user_data['username'];
$favouritee = $profile_data['username'];
$check_fav = mysqli_query("SELECT `id` FROM `favourites` WHERE (`favouritee` = '$favouritee' AND `favouriter` = '$username')");
if (mysqli_num_rows($check_fav) == 1) {
// Favourite user
} else {
//See whether favourited or unfavourite user
}
答案 0 :(得分:0)
要查找用户是否喜欢其他用户,请假设$myUsername
为会话中登录用户的用户名,并假设$otherUsername
来自其他用户的个人资料页面(或者可能是分页用户)用户列表。)
SELECT 1 FROM favourite
WHERE favouriter = :favouriter AND favouritee = :favouritee
然后,您可以将参数$myUsername
注入:favouriter
和$otherUsername
注入:favouritee
,如果您获得一行,您已经拥有了最喜欢的连接,并且如果您获得了零行,没有最喜欢的连接。
这只是原始查询,所以当然你需要在此周围添加PHP数据库代码。如果您对此不熟悉,请在php.net上查看PDO或MySQLi的文档 - 这两个部分将提供足够的信息以帮助您启动和运行。
也就是说,假设用户名存储在user
表中,我倾向于将favourite
表中的两列切换为整数外键 - 它会更快并且会节省磁盘空间。我打电话给这些from_user_id
和to_user_id
,以明确它们的外键和最爱的方向。
答案 1 :(得分:0)
(代表OP发布):
工作代码:
if (($user_data['username'] == $profile_data['username']) === false) {
$username = $user_data['username'];
$favouritee = $profile_data['username'];
$check_fav = mysqli_query("SELECT `id` FROM `favourites` WHERE (`favouritee` = '$favouritee' AND `favouriter` = '$username')");
if (mysqli_num_rows($check_fav) == 1) {
// Favourite user
} else {
// Unfavourited/check
}
}