【发布时间】:2015-02-04 11:08:40
【问题描述】:
我正在使用从 "title" 搜索用户输入的搜索框。除此之外,我想计算另一列“主题”中的一些关键字,仅在用户输入的情况下对应于“标题”列。但问题是如何找到我在查询中提到的单词的计数即
标题 主题
一个 word1,word2,word1,
ab word2,word4,word3,
bb word1,word4,word4,
aa word2,word2,word4,
cb word1,word1,word3,
ac word2,word1,word3,
所以,如果我在文本框中搜索了 a,那么我如何从 subject 中获取 word1 的计数,其中只有 a出现在标题字段中,然后其他单词类似,以便我可以得到输出 like:
您的搜索包含:
word1 (3)
word2 (5)
word3 (2)
单词4 (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,因为我不知道如何在用户搜索词的存在下获取所有单词的单独计数。如何做到这一点?
我们将非常感谢您的帮助。
【问题讨论】:
-
您将首先修复您的数据结构以使用联结表,而不是将列表存储在逗号分隔的列表中。
-
但我不能放一个字。可以有两个,三个或更多,但如果用斜杠(/)或其他东西改变逗号(,),那么有可能获得所需的输出@Gordon Linoff
-
@Darknight 。 . .然后你会有两行,每行一个:en.wikipedia.org/wiki/Junction_table.