PHP:关键字搜索:查找字符串中的子字符串

Gro*_*ler 2 php mysql

我正在建立一个漫画网站并实施了搜索.搜索最初使用图像标题...这工作正常:

if (strtolower($input)==strtolower(substr($row['title'],0,strlen($input)))) {
Run Code Online (Sandbox Code Playgroud)

但现在我觉得很多人都不会记得这个头衔.所以我在数据库中添加了一个名为"keywords"的列,varchar [55] ...我的测试条目是字符串"five,second,rule,food,rules".我想我可以替换$row['title'],$row['keywords']搜索仍然有效.

如果我从字符串的开头开始搜索就行了,比如我输入"five,seco ......"但是如果我从字符串的中间开始,如"second"或"rule"等,则不行.

关于如何使这项工作的任何想法?

谢谢!

Maj*_*ons 7

在漫画专栏中这样做只会带来眼泪,因为它会破坏正常化.你应该做的是创建一个关键字表,每个条目有一个单词,然后是一个与关键字匹配的数据透视表到漫画.然后你可以做一个连接来找到匹配的所有漫画.

设置工作更多,但从长远来看更灵活.

编辑:

关键字表:

id     keyword
1      x-men
2      action
3      mystery
4      batman
etc.
Run Code Online (Sandbox Code Playgroud)

comic_keyword表

comic_id    keyword_id
45          3
678         1
678         2
77          3
77          4
etc.
Run Code Online (Sandbox Code Playgroud)

第二个表(数据透视表)将漫画的ID与他们关联的关键字的ID相匹配.这就是多数情况下应该建模的多对多关系.