搜索页面引擎PHP与MYSQL数据库?
我将概括这个问题,以便其他人可以使用答案。
假设我有一个由 MYSQL 数据库驱动的网站。
数据库包含 5 个表:事件、新闻、书籍、文章、提示。
每个表格都有 2 个我想要搜索的字段标题和详细信息
在网站的每个页面上都有一个搜索表单(文本字段和按钮)。
输入单词或短语后,我希望重定向到名为“搜索”的页面,在该页面中我应该看到结果作为列表,其中包含来自整个数据库的链接。
例如
书 X(链接到数据库中找到的书)
事件 Y
文章 Z
帮助: 表是 INNODB 引擎,因此全文搜索也不起作用,我在构建 SELECT 语句以使用 LIKE 从多个表中搜索多个字段时遇到了麻烦。我已经成功使用一张表,但使用多个表和多个字段时,我会收到错误或在某些情况下没有数据或重复数据。请对此 Select 语句提供一些帮助。
问题:如何为 MYSQL 数据库中的所有表构建搜索引擎?一些 SQL 注入或其他黑客攻击预防建议也将受到赞赏。
I'm going to generalize this question so that other people can use the answers.
Let's say I have a website driven by a MYSQL database.
Database contains 5 tables:events,news,books,articles,tips.
Every table has among others 2 fields Title and Details in which I want to search
On every page of the site I have a search form (text field and button).
After I type a word or phrase I want to be redirected to a page called search where I should see the results as a list with links from the entire database.
e.g.
Book X (link on it to the book found in the database)
Event Y
Article Z
HELP: The tables are INNODB ENGINE so full text search didn't work also I'm having trouble in building a SELECT statement for searching multiple fields from multiple tables with LIKE. I've succeded with one table but with multiple tables and multiple fields I'm getting error or no data or duplicated data in some cases. Some help with this Select statement please.
Question: How do I build a search engine for all the tables in my MYSQL DB? Some SQL injection or other hacking prevention advice would be appreciated also.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我对这种情况的处理方法是基于所有具有相似列(我们只需要搜索的列)的表和一个带有表名/实体名称(书籍、事件等)的别名列创建一个视图,
它应该看起来像这样
我我没有解释如何使用 union 创建视图(如果不希望出现重复,请勿使用 Union All)。
下一站将使用类似语句进行搜索
下一步是显示数据及其实体名称。
当然,您需要通过从搜索表单中过滤 html 实体来获取关键字。
My Approach to the situation is create a view based on all the tables with similar columns ( columns which we need to search only) and one more alias column with their table names/ entity name (Books, event etc)
It should look like this
I am not explaining how to create views with union (dont use Union All if not expecting duplicates).
The next stop would be search using like statements
Next step is to display the data along with their entity names.
Ofcourse, you need to get the keyword by filtering with html entities from the search form.
您可以使用 UNION:
等。
You can use UNION:
and so on.