计算一些有限的单词,并显示它们对应于他们的名字

时间:2015-02-04 11:08:41

标签: php mysql regex sqlyog

我使用搜索框从“title”搜索用户输入。除此之外,我想从另一列“主题”中计算一些关键词,仅在“标题”栏中的用户输入对应。但问题是如何找到我在查询中提到的单词的数量

  

标题主题

  word1,word2,word1,
  AB WORD2,word4,WORD3,
  BB字1,word4,word4,
  AA WORD2,单词2,word4,
  CB字1,字1,WORD3,
  ac word2,word1,word3,

所以,如果我在文本框中搜索过,那么如何从主题中获取 word1 的数量,其中只有 a 是出现在标题字段中,然后与其他单词类似,以便我可以输出,如:

  

您的搜索包含:
  word1(3)
  word2(5)
  word3(2)
  word4(2)

查询代码如下:

$getq = "SELECT Title,Subject COUNT(*) FROM tablename WHERE Title LIKE '%$search_each%' Subject LIKE '%word1%' OR Subject LIKE '%word2%' OR Subject LIKE '%word3%' OR Subject LIKE '%word4%') GROUP BY Subject";
$getquery = $conn->query($getq);
while( $runrows = mysqli_fetch_assoc($getquery))
{
$sub = $runrows ['Subject'];
$countsub = $runrows ['COUNT(*)'];  
}
echo "<a href='#'>"word1"(".$countsub.")</a> ";
echo "<a href='#'>"word2"(".$countsub.")</a> ";
echo "<a href='#'>"word3"(".$countsub.")</a> ";
echo "<a href='#'>"word4"(".$countsub.")</a> ";


在这里,$search_each是文本框输入,上面的代码没有显示任何内容代替$countsub,因为我不知道如何根据用户搜索词的预设获得所有单词的个人计数。如何做到这一点?。

我们将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

试试这个:

$z=array("word1","word2","word3","word4","word5");


$countsub1 = array();
for($i=0;$i<=4;$i++){

$getq3 = "SELECT COUNT(*) FROM table WHERE (Subject LIKE '%$z[$i]%' AND Title LIKE '%$search_each%') ";
$getquery4 = $conn->query($getq3);

while( $runrows = mysqli_fetch_assoc($getquery4))
{
$sub = $runrows ['Subject'];
$countsub = $runrows ['COUNT(*)'];
}
$countsub1[$i] = $countsub;

echo "<a href='#' >$z[$i](".$countsub1[$i].")</a><br> ";
}

不要在循环外写链接这可以解决你的问题