0

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

标题 主题

a word1,word2,word1,
ab word2,word4,word3,
bb word1,word4,word4,
aa word2,word2,word4,
cb word1,word1,word3,
ac word2,word1,word3,

因此,在这里,如果我在文本框中搜索了 a ,那么我如何从标题字段中仅存在 a 的主题中获取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因为我不知道如何在用户搜索词的存在下获取所有单词的单独计数。这怎么能做到?

您的帮助将不胜感激。

4

1 回答 1

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> ";
}

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

于 2015-02-06T11:42:43.823 回答