gpt4 book ai didi

PHP 查询以从 friend 和自己检索文本和/或图像状态更新

转载 作者:行者123 更新时间:2023-11-29 00:57:56 25 4
gpt4 key购买 nike

我正在构建一个社交网站。用户可以有 friend 并能够看到他们的更新(如 facebook)。此外,可以上传仅文本更新或文本和图像更新。

我想让我的主页以降序显示 friend 和他们自己的更新,从最新的开始。

我希望显示是这样的:

Avatar_picture   Update_text    Update_image         ...OR
Avatar_picture Update_text no_image ...OR
Default_avatar_picture Update_text no_image

我有一个用户表:

user_id, username, user_telephone, user_address etc

我还有一个图片表,其中存储了图像,包括头像:

picture_id   picture_url  picture_thumb_url  user_id  type                timestamp  
105 68253.png 68253.png 95 other 2011-02-21 22:42:41
106 44391.jpg 44391.jpg 95 other 2011-02-21 22:42:57
107 73154.jpg 73154.jpg 95 main_avatar_large 2011-02-21 22:43:06

可以看出,它存储了用户的 ID 和类型。任何上传并选为头像的图像都会重命名为 main_avatar_large 类型。

我有一张 friend table :

pal_id  user1_id  user2_id   status  timestamp  
25 92 104 1 2011-02-24 09:34:43
26 95 92 1 2011-02-24 09:35:12
27 92 107 1 2011-02-24 09:35:17
28 97 92 1 2011-02-24 09:35:21
31 106 92 1 2011-02-24 09:36:32
32 105 92 1 2011-02-24 09:36:48
33 92 103 0 2011-02-24 09:37:09
36 92 99 0 2011-02-24 22:54:28
37 108 92 1 2011-02-25 08:45:58

user1_id 存储好友发起人的user_id。确认友谊后,状态设置为 1。

我还有一个名为 wid_updates 的更新表:

update_id  update_text     attached_picture_id   user_id   timestamp  
87 Hi there NULL 92 2011-02-21 18:57:46
88 A new update NULL 92 2011-02-21 22:53:19
89 Another one 112 92 2011-02-21 22:53:32
90 123 NULL 108 2011-02-24 09:39:24
91 Jamo's plan 124 108 2011-02-25 08:42:35

可以看出,如果一个状态更新没有图片,则附加的图片id为null。

我有这个查询,它能够获取用户拥有的所有好友的 user_id 以及他们的头像:

$query_pal_info =  "SELECT DISTINCT users.user_id, picture.picture_thumb_url FROM pals, users, picture
WHERE (
pals.user1_id = '$user_id' AND pals.user2_id = users.user_id
AND pals.status = '1' AND picture.user_id = users.user_id AND picture.type='main_avatar_large')
UNION
SELECT DISTINCT users.user_id, picture.picture_thumb_url FROM pals, users, picture
WHERE (
pals.user2_id = '$user_id' AND pals.user1_id = users.user_id
AND pals.status = '1' AND picture.user_id = users.user_id AND picture.type='main_avatar_large')";

$pal_info = mysql_query($query_pal_info , $connections) or die(mysql_error());

我还可以在我的个人资料页面中检索已登录用户的过去状态更新头像和更新图像:

//query update
$query_wid_updates = "SELECT update_text, picture_thumb_url, picture_id FROM wid_updates LEFT JOIN picture ON wid_updates.attached_picture_id = picture.picture_id
WHERE wid_updates.user_id = '$user_id' ORDER BY wid_updates.update_id DESC";
$wid_updates = mysql_query($query_wid_updates, $connections) or die(mysql_error());

如何构建一个查询,以降序显示 friend 的更新和​​用户自己的更新,从最新的开始,首先是文本和图像?任何帮助将不胜感激。

最佳答案

如果当前登录用户的 id 是 current_user_id 试试看

SELECT av.picture_thumb_url as avatar_pic, update_text, upd_pic.picture_thumb_url as update_pic FROM  
wid_updates upd
LEFT JOIN pictures upd_pic ON attached_picture_id = upd_pic.picture_id
LEFT JOIN pictures av ON av.user_id = upd.user_id AND av.type = 'main_avatar_large'
WHERE
upd.user_id IN (SELECT IF (p.user1_id == current_user_id, p.user2_id, p.user1_id) AS pal_id FROM pals p WHERE p.user1_id = current_user_id OR p.user2_id = current_user_id)
OR upd.user_id = current_user_id ORDER BY timestamp DESC

关于PHP 查询以从 friend 和自己检索文本和/或图像状态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com