我阅读了很多关于标签的帖子,但似乎没有人做我正在做的事情。 我有这个帖子上传器,你有6个标签,你可以通过点击每个类别旁边的复选框来选择任意多个标签,并将值发布到php。
所有这一切都很好,我只是不知道如何将标签存储在数据库中。 如果有人上传了与4个类别有关的东西,我将有4个标签变量,我将插入到某个地方。什么是存储标签的最佳方法,以便我可以在以后按标签对帖子进行排序?
编辑:
类别复选框的HTML是这样的:
<ul class="selectionList">
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="Naruto" type="checkbox" />
<label class="marker_label">Naruto</label>
</div>
</li>
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="OnePiece" type="checkbox" />
<label class="marker_label">One Piece</label>
</div>
</li>
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="DragonBall" type="checkbox" />
<label class="marker_label">Dragon Ball</label>
</div>
</li>
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="Facts" type="checkbox" />
<label class="marker_label">Facts</label>
</div>
</li>
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="Quotes" type="checkbox" />
<label class="marker_label">Quotes</label>
</div>
</li>
<li>
<div class="markerDiv" id="maker_school">
<input class="marker_ckeckbox" name="markerType" value="Other" type="checkbox" />
<label class="marker_label">Other</label>
</div>
</li>
</ul>
我想从POST [&#39; tag1&#39;] [&#39; name&#39;]等抓取$ tag1,2 ... 6然后检查它们中是否有任何不同之处否则不选择任何类别。在if语句中虽然我想插入名称为$ tag1,2,3 ... 6的标签的t.id以及正在上传到post_tags的帖子的postid?
我知道如何在php中编写它,但我只想知道思维过程是否正确。
答案 0 :(得分:1)
这称为 n到m关系。您可以像这样映射
posts table
-----------
id
title
...
tags table
----------
id
name
...
post_tags table
---------------
post_id
tag_id
要获取特定帖子的所有标签,您可以
select t.name
from tags t
join post_tags pt on pt.tag_id = t.id
join posts p on pt.post_id = p.id
where p.title = 'my little post'