如何在数据库

时间:2015-07-24 09:38:50

标签: php sql database

我阅读了很多关于标签的帖子,但似乎没有人做我正在做的事情。 我有这个帖子上传器,你有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中编写它,但我只想知道思维过程是否正确。

1 个答案:

答案 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'
相关问题