PHP MySQL博客标签
我希望这里有人能帮助我 我目前在处理PHP和MySQL中的标记时遇到了一个小问题。到目前为止,我能够在创建新帖子时添加标签。如果实际使用特定帖子中的标记重新填充复选框列表,我面临的唯一问题是 这是我的桌子结构 帖子: 身份证| 头衔| 内容| 创建日期| 修改日期 标签: 身份证| 标签名称 张贴标签: 邮政编码| 标签号 我有一个单一的界面,可以同时管理帖子和标签。我本可以使用2个接口,但这并不高效。提交表单时,我可以很容易地将帖子和相关标签添加到相应的表中。我只想在某篇文章即将编辑时选中相关复选框 使用此SQL代码检索帖子及其所有标记,但它返回的只是一个标记,但有4个标记与此帖子关联: SELECT * FROM (`posts`) LEFT JOIN `post_tags` ON `post_tags`.`post_id` = `posts`.`id` LEFT JOIN `tags` ON `post_tags`.`tag_id` = `blog_tags`.`id` WHERE `id` LIKE '%104%' GROUP BY `blog_posts`.`id_art` 挑选* FROM(`posts`) 在“post\u tags”上左键连接“post\u tags”。“post\u id”=`posts`.`id` 左连接“post\u tags”上的“tags”。'tag\u id`='blog\u tags`.'id` 其中'id'类似于“%104%” 按“blog\u posts”分组。“id\u艺术”` 由于这不起作用,我决定创建两个查询。一个将列出所有可用标记,另一个将列出属于post的标记,基本上执行嵌套的foreach循环。我已经取得了一些成功,这里唯一的问题是复选框被重复了4次。也就是说,同样,帖子也有一些标签,比如书籍、电影、视频和游戏,结果如下: 书 书 书 书 电影 电影 电影 电影 等等 所有列出的10个标签都是如此PHP MySQL博客标签,php,mysql,tags,Php,Mysql,Tags,我希望这里有人能帮助我 我目前在处理PHP和MySQL中的标记时遇到了一个小问题。到目前为止,我能够在创建新帖子时添加标签。如果实际使用特定帖子中的标记重新填充复选框列表,我面临的唯一问题是 这是我的桌子结构 帖子: 身份证| 头衔| 内容| 创建日期| 修改日期 标签: 身份证| 标签名称 张贴标签: 邮政编码| 标签号 我有一个单一的界面,可以同时管理帖子和标签。我本可以使用2个接口,但这并不高效。提交表单时,我可以很容易地将帖子和相关标签添加到相应的表中。我只想在某篇文章即将编辑时选中相关
<div style="overflow-y:auto; width: 350px; height: 200px;">
<?php foreach ($blog_tags as $tag) : ?>
<?php foreach($post_tags as $t) : ?>
<?php echo form_checkbox('tags[]',$tag->id_tag,(!empty($blog_article) && $t->tag_id == $tag->id_tag) ? TRUE : FALSE); ?> <?php echo $tag->name_tag; ?><br />
<?php endforeach; ?>
<?php endforeach; ?>
</div>
有人能指出为什么代码的行为是这样的吗?谢谢
萨姆
另外,如果这太长了,很抱歉……听起来像是SQL问题。我认为你的第二种方法最容易使用。您只需
从标记中选择*FROM tags
即可获取所有标记信息。然后从帖子左侧选择*加入帖子上的帖子标记\u id=post\u tags.post\u id
。这将获取与此帖子关联的所有标记ID。然后,您可以将这些ID与已检索到的标记列表进行匹配。应该:
LEFT JOIN `tags` ON `post_tags`.`tag_id` = `blog_tags`.`id`
。。。也许会改成
LEFT JOIN `tags` ON `post_tags`.`tag_id` = `tags`.`id`
我不确定什么是
blog\u标签。为什么只有一个
就有多个
?代码将更加清晰。