我非常坚持某件事,我确信有一个简单的解决方案,但它打败了我和我的基本 PHP!
我有一个 MySQL 数据库,其中包含用户为一组视频输入的标签(标签)。我查询数据库以找到 5 个最常出现的视频标签。
$sql_get_toptags=mysql_query("SELECT TagName,Count(TagName) AS TagFreq
FROM Tags
Where vidID='$vidid'
Group BY TagName
Order By Count(TagName) DESC limit 5",$db);
如果我遍历结果,它们会输出到浏览器没问题
while($myrow = mysql_fetch_assoc($sql_get_toptags)) {
$tagname = $myrow[TagName];
echo $tagname;
}
我想要做的是找出用户刚刚输入的标签是否在最常输入的列表中及其位置,即 1.tagname 我希望 1 和 tagname 是我可以重用的变量,在示例中$answer 下面是 1 $tagname 显然是标记名。
这就是我所拥有的:
$sql_get_toptags=mysql_query("SELECT TagName,Count(TagName) AS TagFreq
FROM Tags
Where vidID='$vidid'
Group BY TagName
Order By Count(TagName) DESC limit 5",$db);
while($myrow = mysql_fetch_assoc($sql_get_toptags)) {
$tagname = $myrow[TagName];
for ($i=1; $i<=5; $i++){
echo $i,$tagname;
echo "<br>";
if ($tag==$tagname){
$TopTag=$tagname;
$answer=$i;
}
}
}
if (($TopTag!='') && ($answer!='')){
echo "your tag is no.".$answer;
}
这行不通。这是它输出的示例:
1胡须
2
胡须
3
胡须
4
胡须 5
胡须 1爆炸
2爆炸
3爆炸 4爆炸 5爆炸
1垃圾 2垃圾 3垃圾 4
垃圾
5垃圾 1
火山
2
火山
3
火山 4火山
5
火山
1
真棒
2
真棒
3
真棒
4
真棒
5
真棒
你
的标签是没有
。
我已经尝试过感觉就像一百万个循环组合我无法得到我想要的东西。
在我看来,$tagname[] 应该是一个数组,括号中的数字是键,例如 tagname[2] 它将是列表中的第三个。所以 if ($tag==$tagname[2]){ //echo "那个标签是第三受欢迎的"; 但是 $tagname 只是一行,如果我尝试在 while 循环中创建一个数组,我只会在每次迭代时覆盖最后一个条目。
我真的很感激任何建议。
我想看到的输出(即如果 $tag=explosion)
1胡须 2爆炸 3垃圾 4火山 5厉害
你的标签是 2 号