我创建了一个检查“好友关系”的查询。基本上,friend_one
/$user_id
是登录的用户,friend_two
/$profile_user
是其他用户的 ID。 .. 即:如果我单击此处的另一个用户的个人资料,那就是该用户。
我的系统工作正常,除非登录用户查看自己的个人资料。由于我的查询正在检查登录用户是否正在查看另一个个人资料,因此当登录用户查看自己的个人资料时,它会抛出 undefined variable 错误。
我可以对我的 SQL
或 php
进行任何更改,以便当 friend_one
/user_id
时> 查看自己的配置文件,它不会抛出无法识别的变量错误?
第一个无法识别的变量错误从这里开始:if ($friend_status == 2) {
。因此查询不会抛出错误。
显示错误是因为我永远不会让用户在这个表中与自己有关系。因此,我猜想在查看“不加好友”的个人资料时也会出现此错误。有什么办法可以解决这个问题吗?
<小时/>编辑:
我原来的回答有点难以理解。基本上,只有当一个用户与另一个用户成为 friend 时,才会建立 friend “关系”或插入我的数据库。因此,如果此关系不在数据库中且不在我的查询中,我想“放手”,因此它不仅仅检查 friend_one
和 friend_two
关系.
$okay = true;
//Checks
if ( $okay ) {
$friend_sql = "
SELECT *
FROM friends
WHERE friend_one = ?
AND friend_two = ?
";
$select_friend_stmt = $con->prepare($friend_sql);
$select_friend_stmt->execute(array($user_id, $profile_user));
$friend_rows = $select_friend_stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($friend_rows as $friend_row) {
$select_friend_1 = $friend_row['friend_one'];
$select_friend_2 = $friend_row['friend_two'];
$friend_status = $friend_row['status'];
$friend_status_date = $friend_row['date'];
}
}
else {
echo "Friend Status not found.";
}
$friend_status_button = null;
if ($friend_status == 2) {
$friend_status_button = "Approved";
}
else if ($friend_status == 1) {
$friend_status_button = "Pending";
}
else if ($select_friend_1 == $select_friend_2) {
$friend_status_button = null;
}
else {
$friend_status_button = "Add Friend";
}
最佳答案
如果是我,我会更改 select 语句
编辑我的语句,因为您的参数是问号(?)
SELECT *
FROM friends
WHERE friend_one = ?
AND friend_two = ? and (friend_one <> ? and friend_two <> ?)
下一个问题是返回值,因为这将返回 null。因此,我会检查 $friend_rows
数据,如果它等于零,则捕获错误。
关于php - 扩展 SELECT 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40669078/