【问题标题】:Personalized php outputs from different sql tables来自不同 sql 表的个性化 php 输出
【发布时间】:2018-07-27 16:11:44
【问题描述】:

我正在创建一个通知页面,其中 显示的通知有 4 种类型

1) someone liked your post
2) someone shared your post
3) someone added you as a friend
4) someone commented your post

我已经获得了每个语句的 sql 代码,但我仍然不知道如何在单个 while($a=sql_array()){} 循环中混合所有内容,我知道我应该按日期使用 UNION 和 ORDER,但是如何发布个性化输出对于显示的每种类型的通知

DESIRED OUTPUT

A liked your page
B comment your post
C liked your page
D comment your post
E added you as a friend
F liked your page
G comment your post
H shared your post
I added you as a friend
J shared your post
K shared your post
L liked your page
M added you as a friend
N shared your post
O added you as a friend
P liked your page
Q comment your post
R added you as a friend
S added you as a friend
T comment your post
D liked your page

我有 6 张桌子

table_users
table_posts 
table_likes
table_shares
table_comments
table_community

每种类型的通知都遵循相同的模式

 SELECT u.`name`, p.post, p.date as OrderDate
  FROM likes (next shares, next, comments, community)
    LEFT JOIN Users as u on likes.id_liker=u.id_user
    LEFT JOIN Users as v on likes.liked_user_id=v.id_user
    LEFT JOIN Posts as p on likes.liked_post_id=p.id_post
         WHERE likes.liked_user_id=3

所以我使用由OrderDate 排序的UNION,他们检索结果但没有个性化类型的通知。我正在尝试总结,因为这是巨大的。

【问题讨论】:

  • 你是什么意思,“没有个性化类型的通知”?
  • 例如,第一个php输出行是A added you as a friend,第二个是B commented your post,第三个是C liked your post,它们都来自一个while循环。跨度>

标签: php sql while-loop union


【解决方案1】:

所以你想以不同的方式格式化这些事件?这就像在输出中添加一个鉴别器字段一样简单

SELECT "like", u.`name`, p.post, p.date as OrderDate FROM likes ...
UNION
SELECT "share", u.`name`, p.post, p.date as OrderDate FROM shares ...

现在在您的应用程序中,您可以根据第一列的值选择不同的格式。

【讨论】:

  • 大声笑。太简单。我得到它并让它工作。哈哈。我使用了$type=$row['0'];,它在输出行中显示了鉴别器的类型。非常感谢!!。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多