【问题标题】:Can't display avatar - PHP, MySQL无法显示头像 - PHP, MySQL
【发布时间】:2016-10-20 16:07:40
【问题描述】:

我已经创建了一个私人消息系统,我正在尝试为接收消息的人显示头像,但不是为接收者获取头像,而是尝试为登录用户获取图像。

对于图像源,头像存储在名为user 的文件夹中。文件夹的布局是用户/用户名/头像。但是,在实现时,会打开正确的用户文件夹,但它会搜索已登录用户的头像。

另外,还有一点需要注意。由于某种原因,显示了sender(父消息)的头像,但没有显示接收者。

这是我的 PHP。

$sql = "
    SELECT * FROM users 
    INNER JOIN pm ON users.username = pm.sender 
    WHERE (
        receiver='$logged_in_user' 
        AND parent='x' AND rdelete='0'
    ) 
    OR (
        sender='$logged_in_user' 
        AND sdelete='0' AND parent='x'
    )
    ORDER BY senttime DESC";
$query = mysqli_query($db, $sql);
$statusnumrows = mysqli_num_rows($query);

if($statusnumrows > 0){
    while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)) {
        //assigning variables
        $avatar = $row["avatar"];
        $sender = $row["sender"];
        $receiver = $row["receiver"];

        if($parent == "x" && $sender == $logged_in_user){
           $profile_pic = '<img src="user/'.$receiver.'/'.$avatar.'" alt="'.$receiver.'">';
        }
     }
}
echo $profile_pic;

【问题讨论】:

  • 您在 where 子句中设置了 receiver='$logged_in_user'。它应该是接收者 ID,在您的代码中没有提到任何地方。实际上,这个查询看起来真的很混乱。

标签: php mysql


【解决方案1】:

那么,这个 PHP 应该产生接收者的头像?

看这里的SQL:

INNER JOIN pm ON users.username = pm.sender 

试试吧:

INNER JOIN pm ON users.username = pm.receiver

(当然假设该列在您的架构中被命名为“receiver”)。

【讨论】:

  • 非常感谢!这解决了它。我太傻了!非常感谢!
  • 没那么傻......像这样的事情发生了。有时它在到达 S.O. 之前就被抓住了。虽然:-) 感谢您接受的答案!
猜你喜欢
  • 1970-01-01
  • 2014-01-09
  • 2016-02-06
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
相关资源
最近更新 更多