您如何计数和格式化用户标签

| 我有用户输入的标签,这些标签位于表格字段标签下。
$sql=\"SELECT tags from table\";
$stmt16 = $conn->prepare($sql);
$result=$stmt16->execute();
while($row = $stmt16->fetch(PDO::FETCH_ASSOC)){ 
echo $tags=$row[\'tags\'];
}
这产生   酷,是,好的酷,是,好的 因为该字段下有2个条目具有相同的3个标签。我希望能够计算每个标签有多少重复,这样结果应该是cool(2)yes(2)ok(2)。有人知道解决此问题的正确方法吗?我应该以数组形式获取结果还是将其爆炸?     
已邀请:
        对于您当前的数据结构,我给出的答案是肯定的:正如您所说的那样,将它们分解并放入数组中。
$tags = array();
while($row = $stmt16->fetch(PDO::FETCH_ASSOC)){ 
    foreach(explode(\',\',$row[\'tags\']) as $tag) {
        if(isset($tags[$tag]) {$tags[$tag]++;} else {$tags[$tag]=1;}
    }
}

//now you can see how many times each tag occurred...
foreach($tags as $tag=>$count) {
   print \"Tag {$tag} occurred {$count} times<br />\";
}
但是,如果您可以更改数据库结构,那么每个数据库记录中只有一个记录,您会发现管理标签变得容易得多。这样可以更轻松地查询它们。     
        我将声明更改为
SELECT COUNT(*) as cnt, tags 
FROM table
GROUP BY tags
你在那里。 编辑: 不要忘记将
echo
更改为
echo $row[\'tags\'] .\"(\". $row[\'count\'] .\")\";
    
        只需使用此查询:
SELECT tag, COUNT(*)
FROM table
GROUP BY tag
HAVING COUNT(*) >1; 
    

要回复问题请先登录注册