帖子列表php,帖子列表里面怎么查出标签

博客讨论了如何使用MySQL查询语句,如JOIN操作,来获取复杂的数据结构,然后在PHP中通过循环处理构建所需格式的数组。内容涉及到数据库表list和tag之间的关联查询,并给出了可能的SQL和PHP代码示例。
摘要由CSDN通过智能技术生成

list和tag都是数据库里的数据,想要用mysql这样的查询语句查询出来,得到下面的查询结果,在不用foreach这样的php循环语句下得到结果

list => array(

array(id => 1, title => '这是title'),

array(id => 2, title => '这是title2'),

)//list_id和list里的id关联

tag => array(

array(id => 1, list_id = 1, name => 'tag1'),

array(id => 2, list_id = 1, name => 'tag2'),

array(id => 3, list_id = 2, name => 'tag3'),

);

这样的,该怎样查出

select => array(

array(

id => 1,

title => '这是title',

tag =>array(

array( id =1, name => 'tag1'),

array(id=2,name='tag2')

),

),

array(

id => 2,

title => '这是title2'

tag =>array(

array( id =3, name => 'tag3')

),

),

)

这样的数据?

PS:就像本站的列表是怎么显示的标签的?

回复内容:

list和tag都是数据库里的数据,想要用mysql这样的查询语句查询出来,得到下面的查询结果,在不用foreach这样的php循环语句下得到结果

list => array(

array(id => 1, title => '这是title'),

array(id => 2, title => '这是title2'),

)//list_id和list里的id关联

tag => array(

array(id => 1, list_id = 1, name => 'tag1'),

array(id => 2, list_id = 1, name => 'tag2'),

array(id => 3, list_id = 2, name => 'tag3'),

);

这样的,该怎样查出

select => array(

array(

id => 1,

title => '这是title',

tag =>array(

array( id =1, name => 'tag1'),

array(id=2,name='tag2')

),

),

array(

id => 2,

title => '这是title2'

tag =>array(

array( id =3, name => 'tag3')

),

),

)

这样的数据?

PS:就像本站的列表是怎么显示的标签的?

SELECT posts.id AS post_id, posts.title AS post_title, GROUP_CONCAT(tags.name AS tag_name)

FROM posts, tag_posts, tags

WHERE tag_posts.post_id = posts.id

AND tag_posts.tag_id = tags.id

GROUP BY post_title

额,突然明白过来你可能是在问MySQL的查询语句..好囧,好像这个需求能用JOIN搞定?SELECT * FROM `list` LEFT JOIN `tag` ON list.id = tag.list_id,这个试试?

$lists = array();

foreach($list as $item)

$lists[ $item['id'] ] = array('id'=>$item['id], 'title'=>$item['title']);

foreach($tag as $item) {

$lists[ $item['list_id'] ]['tag'][] = array('id'=>$item['id'], 'name'=>$item['name']);

/*为了得到你的问题中的效果,其实这步有点多余。*/

$lists = array_values($lists);

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值