PHP:对于同一帖子id只输出一次,并添加该帖子的媒体
对于问题的标题我很抱歉,但我没有合适的词来定义 表中的同一帖子有多个媒体,现在我想以下面的格式输出数据PHP:对于同一帖子id只输出一次,并添加该帖子的媒体,php,mysql,wordpress,Php,Mysql,Wordpress,对于问题的标题我很抱歉,但我没有合适的词来定义 表中的同一帖子有多个媒体,现在我想以下面的格式输出数据 Post ID 1 ------------------------ media1, media2, media3 ------------------------ Post ID 2 ------------------------ media1, media2, media3 ------------------------ so on... 这是表格图像 我使用下面的查询连接上表
Post ID 1
------------------------
media1, media2, media3
------------------------
Post ID 2
------------------------
media1, media2, media3
------------------------
so on...
这是表格图像
我使用下面的查询连接上表
SELECT wp_posts.ID, wp_posts.post_author, wp_posts.post_title, wp_posts.post_status, wp_posts.post_type,
wp_review_media.post_id, wp_review_media.user_id, wp_review_media.id, wp_review_media.image_name, wp_review_media.`status`,
wp_users.ID, wp_users.user_login
FROM wp_posts
RIGHT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
RIGHT OUTER JOIN wp_review_media ON wp_posts.ID = wp_review_media.post_id
WHERE wp_posts.post_status = 'publish' AND wp_review_media.`status` = 0
目前,该循环以以下格式提供输出
<?php
if ($medias) {
foreach ($medias as $media) {
?>
<tr>
<td><?php echo $media->ID; ?></td>
<td><?php echo $media->post_title; ?></td>
</tr>
<?php }
} else { ?>
<tr>
<td>No Record Found!</td>
<tr>
<?php } ?>
那么,有谁能帮助我理解如何才能得到我上面描述的结果呢
非常感谢…如果您只需要id和媒体列表,请使用
GROUP\u CONCAT
:
SELECT wp_posts.ID, GROUP_CONCAT(wp_posts.post_title) titles
FROM wp_posts
RIGHT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
RIGHT OUTER JOIN wp_review_media ON wp_posts.ID = wp_review_media.post_id
WHERE wp_posts.post_status = 'publish' AND wp_review_media.`status` = 0
GROUP BY wp_posts.ID
这将只输出文章标题,对吗?然后我需要运行另一个查询来获取媒体?“我的想法对吗?”pixelngrain——不太清楚你在问什么。根据上面的php代码,使用GROUP_CONCAT将在一行中生成Post Id和Post_标题(PostId1;Title1,Title2,Title3)vs(PostId1;Title1--PostId1;Title2--etc)。祝你好运。如果你参考我的图表,我希望所有的帖子id都被搜索,并且该帖子id的所有媒体都应该显示在该组下。我试过运行多个查询,但这是如何将所有媒体呈现给所有人的post@pixelngrain--使用GROUP_CONCAT,您将得到这样的结果--它将打印出一个PostId,然后是一个媒体列表。用上面的php代码试试看。现在所有的东西都印在一起了。如果你真的需要post id,然后换行,然后是媒体,请使用2个TR而不是2个TDs。
SELECT wp_posts.ID, GROUP_CONCAT(wp_posts.post_title) titles
FROM wp_posts
RIGHT OUTER JOIN wp_users ON wp_users.ID = wp_posts.post_author
RIGHT OUTER JOIN wp_review_media ON wp_posts.ID = wp_review_media.post_id
WHERE wp_posts.post_status = 'publish' AND wp_review_media.`status` = 0
GROUP BY wp_posts.ID