【发布时间】:2017-04-06 10:19:10
【问题描述】:
我有以下查询,除了一件事外,它工作得很好。它检查配置文件图像是否不在所选用户的profile_img 数据库中,如果没有,它会提供默认图像。再说一次,这很好。我的问题是,如果用户没有个人资料 img,那么由于某种原因我无法访问他们的 user_id。不过,他们的用户名是正确的。但是,如果用户确实有 profile_img,那么链接 echo '<a href="profile?user='.$comment_user_id.'"> 就可以正常工作。
任何人都知道如何在没有 profile_img 的情况下让它为用户工作?
SELECT c. *, PI.user_id, case when p.img <> '' and p.img is not null then p.img else 'profile_images/default.jpg' end img
FROM home_comments AS c
LEFT JOIN (SELECT max(id) as id, user_id
FROM profile_img
GROUP BY user_id) PI
on PI.user_id = c.user_id
LEFT JOIN profile_img p
on PI.user_id = p.user_id
and PI.id = p.id
ORDER BY c.id DESC
我试图调用它的代码
$comment_user_id = $comment_row['user_id'];
$comment_username = $comment_row['username'];
echo '<a href="profile?user='.$comment_user_id.'"><div class="comment-post-username">'.$comment_username. '</div></a>';
数据库表
home_comments
CREATE TABLE `home_comments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`username` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`comment` text COLLATE utf8_unicode_ci NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`id`)
)
profile_img
CREATE TABLE `profile_img` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`img` text COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
)
【问题讨论】:
标签: php mysql sql hyperlink case