Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:对于同一帖子id只输出一次,并添加该帖子的媒体_Php_Mysql_Wordpress - Fatal编程技术网

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