统计一些有限的单词并显示它们对应于他们的名字
count some limited words and display them correspond to their names
我正在使用一个搜索框来搜索来自 "title" 的用户输入。除此之外,我想计算另一列 "subject" 中的一些关键字,仅当用户输入对应于 "title" 列时。但问题是如何找到我在查询中提到的单词的数量即
Title Subject
a word1,word2,word1,
ab word2,word4,word3,
bb word1,word4,word4,
aa word2,word2,word4,
cb word1,word1,word3,
ac word2,word1,word3,
所以,如果我在文本框中搜索了一个,那么我如何从 subject 中获取 word1 的计数,其中只有 a 出现在标题字段中,然后与其他词类似,以便我可以获得输出 like:
your search a contains :
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
的位置,因为我不知道如何在用户搜索词的情况下对所有单词进行单独计数。如何做到这一点?
非常感谢您的帮助。
试试这个:
$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> ";
}
不要在循环外写链接,这样可以解决你的问题。
我正在使用一个搜索框来搜索来自 "title" 的用户输入。除此之外,我想计算另一列 "subject" 中的一些关键字,仅当用户输入对应于 "title" 列时。但问题是如何找到我在查询中提到的单词的数量即
Title Subject
a word1,word2,word1,
ab word2,word4,word3,
bb word1,word4,word4,
aa word2,word2,word4,
cb word1,word1,word3,
ac word2,word1,word3,
所以,如果我在文本框中搜索了一个,那么我如何从 subject 中获取 word1 的计数,其中只有 a 出现在标题字段中,然后与其他词类似,以便我可以获得输出 like:
your search a contains :
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
的位置,因为我不知道如何在用户搜索词的情况下对所有单词进行单独计数。如何做到这一点?
非常感谢您的帮助。
试试这个:
$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> ";
}
不要在循环外写链接,这样可以解决你的问题。