gpt4 book ai didi

PHP 社交网络 block 功能

转载 作者:行者123 更新时间:2023-11-29 07:31:04 26 4
gpt4 key购买 nike

我一直在制作一个社交网络平台,最近我一直在尝试实现一项允许人们屏蔽其他用户的功​​能。我正在努力做的是实现它。

我的数据库有一个名为“blocks”的表,它有两列:“userId”是已阻止其他用户的用户,“blockedUserId”是已被阻止的用户的 ID。我想从名为“user”的表中选择用户已阻止的所有用户,并且 blockedUserId 将用于选择用户使用用户表中的“id”列已阻止的帐户。

我遇到的另一个问题是实现一项功能,如果用户试图访问已被禁止查看的用户个人资料。

我有以下嵌套在一个类中的代码。该功能旨在在用户的个人资料页面上向用户显示他们已屏蔽的人。

public static function BlockedUsers($_userInfo, $main) {
// Show user the users they've blocked.
$userId = $_userInfo['userId'];
if (mysqli_num_rows(mysqli_query($main, "SELECT * FROM blocks WHERE userId='$userId'")) > 0) {

$query = mysqli_query($main, "SELECT * FROM blocks WHERE userId='$userId'");

while ($row = mysqli_fetch_assoc($query)) {

$buid = $row['blockedUserId'];

$query = mysqli_query($main, "SELECT * FROM blocks WHERE blockedUserId='$buid' and userId='$userId'");

while ($row = mysqli_fetch_assoc($query)) {

$uid = $row['blockedUserId'];

$query = mysqli_query($main, "SELECT * FROM user WHERE id='$uid'");

while ($row = mysqli_fetch_assoc($query)) {
echo $row['username'];
}

}

}

} else {
echo "You haven't blocked anyone yet. ";
}

我的帐户 ID 是 1,还有其他 ID:例如 2、3、4。这些 ID 中的每一个都与一个用户名相关联。这些 ID 将位于“blocks”表中的表列“blockedUserId”中。 'blocks' 表中的 'blockedUserId' 应用于选择用户表中使用与 'user' 表中的 'id' 列相关的 ID 的所有用户。

非常感谢任何帮助。

最佳答案

这似乎很容易用嵌套的 SQL 查询解决:

SELECT * FROM user WHERE userId IN (SELECT blockedUserId FROM blocks WHERE userId==1)

这会执行以下操作:括号中的查询将收集与给定用户 ID(在本例中为 1)对应的所有被阻止的用户 ID。总查询将从子查询的结果中包含userId的用户表中选择所有数据。

关于PHP 社交网络 block 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51225622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com