php - MySQL读错列?

标签 php mysql

这让我很困惑。我以前做过很多次这样的查询,但这一次似乎有问题。我什至完全删除了表格并重新添加了它,所以我不确定问题出在哪里。

基本上我有一个名为 friends 的表,其中一个用户 (sender_id) 可以向另一个用户 (receiver_id) 发送好友请求,状态最初设置为 0,然后当接收者接受好友请求时,状态更新为 1 .

在 friend 页面上,它列出了所有登录用户的 friend 以及 friend 的头像、用户名等。但是,值“friend_id”提取的是 ROW NUMBER(列 id)而不是“其他用户 id” (sender_id 或 receiver_id 取决于发送请求的人......无论是不是登录用户)。

friend 表设置:id (INT 15, unique, primary), sender_id (INT 15), receiver_id (INT 15), created (datetime), status = (INT 1)

$getfriends = mysql_query("SELECT * FROM friends WHERE sender_id = '$user_id' OR receiver_id = '$user_id' ORDER BY status ASC, id DESC LIMIT $offset, $user_friends_limit", $conn);

然后是一些设置表格的代码

while ($rowfriends = mysql_fetch_assoc($getfriends)) {

$relationship_id = $rowfriends['id']; // this doesn't actually need to be called since I don't need to use this number
$sender_id = $rowfriends['sender_id'];
$receiver_id = $rowfriends['receiver_id'];
$friend_status = $rowfriends['status'];
$friend_date = $rowfriends['created'];


// THE IMPORTANT PART THAT ASSIGNS THE FRIEND ID
if($sender_id == "$user_id"){
    $friend_id = "$receiver_id";
}
else {
    $friend_id = "$sender_id";
}

if($friend_status == 0){
     $since = "Request Sent";
}
elseif($friend_status == 1){
     $since = "Friend Since";
}

// FUNCTIONS --- ALL OF THE FUNCTIONS ARE RETURNING WITH THE WRONG INFO
User($friend_id);
Avatar($friend_id);
ProfileURL($friend_id);
UserFavorites($friend_id);
UserPoints($friend_id);
UserPosts($friend_id);
DateConvert($friend_date);

然后是一些显示结果的代码

似乎当 friend_id = 1 AS 时,当 id 为 1 的用户发送或接收好友请求时,friend_id 会拉取 ROW 编号或 relationship_id,否则它看起来正常。我只是不确定为什么会这样。

例如,如果我替换 $sender_id = $rowfriends['sender_id'];到 $sender_id = RAND(2, 2000);它为具有生成的任何随机 ID 的用户显示正确的头像、用户名等。当用户为 1 时,它不起作用。

回答

我在下面发布了答案,但我还不能接受。

最佳答案

你编码:

    // THE IMPORTANT PART THAT ASSIGNS THE FRIEND ID
    if($sender_id == "$user_id"){
...

但我没有看到正在设置 $user_id。

关于php - MySQL读错列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8957562/

相关文章:

mysql - 将 .sql 文件从本地主机导入到远程 awd rds

java - Docker Flyway MySQL 8 : Client does not support authentication protocol requested by server. 考虑升级MariaDB客户端

php - iphone 使用 APNs 从 mysql 接收数据的方式如何?

php - Wordpress 数据库连接插件

php - Laravel Dusk,如何在测试之间销毁 session 数据

php - 有什么好的 PHP MySQL 兼容报告框架吗?

php - 非持久性 pg 连接

javascript - 保护 AJAX 调用的 PHP 端点

MySQL : transaction within a stored procedure

mysql - 显示每月预订总额的 SQL 查询