php - 扩展 SELECT 查询

标签 php mysql sql if-statement

我创建了一个检查“好友关系”的查询。基本上,friend_one/$user_id 是登录的用户,friend_two/$profile_user 是其他用户的 ID。 .. 即:如果我单击此处的另一个用户的个人资料,那就是该用户。

我的系统工作正常,除非登录用户查看自己的个人资料。由于我的查询正在检查登录用户是否正在查看另一个个人资料,因此当登录用户查看自己的个人资料时,它会抛出 undefined variable 错误。

我可以对我的 SQLphp 进行任何更改,以便当 friend_one/user_id 时> 查看自己的配置文件,它不会抛出无法识别的变量错误?

第一个无法识别的变量错误从这里开始:if ($friend_status == 2) {。因此查询不会抛出错误。

显示错误是因为我永远不会让用户在这个表中与自己有关系。因此,我猜想在查看“不加好友”的个人资料时也会出现此错误。有什么办法可以解决这个问题吗?

<小时/>

编辑:

我原来的回答有点难以理解。基本上,只有当一个用户与另一个用户成为 friend 时,才会建立 friend “关系”或插入我的数据库。因此,如果此关系不在数据库中且不在我的查询中,我想“放手”,因此它不仅仅检查 friend_onefriend_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/

相关文章:

java - SQL 删除级联帮助(特定问题)

php - 在 Zend Framework 的 View 或 Controller 中设置变量更好吗?

php - Laravel PackageManifest.php 行 131 : Undefined index: name

java - 优化/改进我的 SQL 更新

mysql - 5000万条数据的表,添加索引耗时太长

php - MySQL查询使用日期范围获取数据

php - 如何将扩展名添加到 codeigniter 路由

javascript - 使用 PHP AJAX 或 js 操作后获取文档源

php - Laravel Eloquent Eager Loading 倍数有很多关系

sql - 如何根据 INPUT 和 OUTPUT 计算 Assets 的运行余额