如何使用php计算数据库中的标签(关键字)数量

时间:2015-11-22 14:28:57

标签: php mysql tags

我喜欢这个网站显示标签的方式,如javascript×988307。我想在我的网站上做同样的事情。请建议我使用php和mysql做到这一点的最佳方法。这样做的一种方法就是简单地计算关键字,我猜这将是一个繁重的过程。 感谢

1 个答案:

答案 0 :(得分:1)

数据库应该有一个单独的外键表,其中只包含关键字。

QuestionTable(ID, title, body, ...)
FlagTable(ID, name)
QuestionFlagTable(ID, IDquestion, IDflag)

$sql = "SELECT COUNT(*), f.ID, f.name" .
    " FROM QuestionFlagTable qf" .
    " INNER JOIN FlagTable f ON (f.ID = qf.IDflag)" .
    // optional WHERE (e.g. only specific flags)
    " GROUP BY f.ID, f.name" .
    // optional HAVING (e.g. min. count)
    // optional ORDER BY (e.g. by name or count)
    "";

当然,您可以在问题正文中搜索关键字,但这是一个非常 db-heavy进程。想想这样的事情:

$sql = "SELECT COUNT(*) FROM QuestionTable WHERE body LIKE ?";
$sth = $pdo->prepare($sql);
$sth->execute(array('%' . $keyword . '%'));