Php 如何使$\u POST在搜索查询中表现得像$\u GET?

Php 如何使$\u POST在搜索查询中表现得像$\u GET?,php,mysql,html,search,post,Php,Mysql,Html,Search,Post,基本上,我有一个搜索查询,如果我将它与$\u GET一起使用,它可以正常工作,但我想对其中一个使用$\u POST(然后使用json返回)。但是我不知道如何做到这一点,以便搜索将在每个单词单独 这是我的搜索查询 SELECT DISTINCT(auto), user_id, username, first_name, last_name, email, sex, active, ppic, time_zone, adult_filter, ((CASE WHEN `username`

基本上,我有一个搜索查询,如果我将它与$\u GET一起使用,它可以正常工作,但我想对其中一个使用$\u POST(然后使用json返回)。但是我不知道如何做到这一点,以便搜索将在每个单词单独

这是我的搜索查询

    SELECT  DISTINCT(auto), user_id, username, first_name, last_name, email, sex, active, ppic, time_zone, adult_filter, ((CASE WHEN `username` LIKE '%$search%' THEN 2 ELSE 0 END) + (CASE WHEN `first_name` LIKE '%$search%' THEN 1 ELSE 0 END) + (CASE WHEN `last_name` LIKE '%$search%' THEN 1 ELSE 0 END)) AS relevance
FROM users, network
WHERE `username` LIKE '%$search%' OR
  `last_name`LIKE '%$search%' 
  OR `first_name` LIKE '%$search%' 
ORDER BY relevance DESC, username LIMIT 5
所以基本上,我所需要做的就是让
$search=$\u POST['search']
与这个查询一起工作。。。有人能告诉我这是怎么做到的吗

编辑:
看来我可以用$了。得到。。。(这很有意义)而不是$.post(这是我过去习惯的)并得到相同的结果。如果我错了,请随时纠正我,不过我会尝试一下,看看效果如何。

使用-它包含
$\u GET
$\u POST
$\u COOKIE
使用-它包含
$\u GET
的内容,
$\u POST
$\u COOKIE

您应该查看mysql,以便在多个列上进行相关性和匹配

SELECT DISTINCT(auto), user_id, username, first_name, last_name, email, sex, active, ppic, time_zone, adult_filter, ((CASE WHEN `username` LIKE '%$search%' THEN 2 ELSE 0 END) + (CASE WHEN `first_name` LIKE '%$search%' THEN 1 ELSE 0 END) + (CASE WHEN `last_name` LIKE '%$search%' THEN 1 ELSE 0 END)) AS relevance
FROM users, network WHERE MATCH (username, first_name, last_name) AGAINST ('$search' IN BOOLEAN MODE) ORDER BY relevance DESC, username LIMIT 5;
ADV对$u请求的建议将有助于捕获post和get

但是,您询问了搜索词中每个词的相关性。匹配也可以这样做,但您需要选择它作为列

SELECT MATCH (username, first_name, last_name) AGAINST ('$search') AS relevance, DISTINCT(auto), user_id, ...

别忘了在我提供的链接中查找匹配项。如果你是新手,你需要知道一些事情——比如要求在你想要搜索的列上使用myisam表和全文索引。

你应该在mysql中查找多个列的相关性和匹配性

SELECT DISTINCT(auto), user_id, username, first_name, last_name, email, sex, active, ppic, time_zone, adult_filter, ((CASE WHEN `username` LIKE '%$search%' THEN 2 ELSE 0 END) + (CASE WHEN `first_name` LIKE '%$search%' THEN 1 ELSE 0 END) + (CASE WHEN `last_name` LIKE '%$search%' THEN 1 ELSE 0 END)) AS relevance
FROM users, network WHERE MATCH (username, first_name, last_name) AGAINST ('$search' IN BOOLEAN MODE) ORDER BY relevance DESC, username LIMIT 5;
ADV对$u请求的建议将有助于捕获post和get

但是,您询问了搜索词中每个词的相关性。匹配也可以这样做,但您需要选择它作为列

SELECT MATCH (username, first_name, last_name) AGAINST ('$search') AS relevance, DISTINCT(auto), user_id, ...

别忘了在我提供的链接中查找匹配项。如果你是新手,你需要知道一些事情——比如要求你要搜索的列有myisam表和全文索引。

简单的回答是你不应该这样做

现在,答案很长

首先,为什么要对读取请求使用
$\u POST
?让我向您介绍HTTP上下文中的安全性幂等性的概念

说明书上说:

如果窗体的处理是幂等的(即它没有持久的 对世界状态的可观察影响),然后是形式方法 应该得到。许多数据库搜索没有明显的副作用,而且 是查询表单的理想应用

关于HTTP GET HTTP谓词
GET
是专门为检索资源而创建的,不可能对其进行任何更改。我的意思是它是安全的。它不会引起任何副作用。在您的案例中,应该使用
GET
请求从数据库获取数据并显示它。现有HTML页面、图像请求、数据库搜索等。。。这些都是应该使用
GET
发出的安全请求

同时,幂等项意味着执行请求724次与执行一次具有相同的效果。幂等请求第一次可能会在数据库中创建一些内容,但不会再创建,或者下次只会返回对它的引用

HTML规范继续

特别是,该公约已经确立,缔约国 HEAD方法不应具有采取行动的意义 除了检索。这些方法应该被认为是“安全的”。 这允许用户代理表示其他方法,例如POST、PUT和PUT 并以特殊方式删除,以便用户了解 请求可能不安全的操作的事实


总之,请理解您不应该使用
POST
执行安全的只读操作。

简单的回答是您不应该这样做

现在,答案很长

首先,为什么要对读取请求使用
$\u POST
?让我向您介绍HTTP上下文中的安全性幂等性的概念

说明书上说:

如果窗体的处理是幂等的(即它没有持久的 对世界状态的可观察影响),然后是形式方法 应该得到。许多数据库搜索没有明显的副作用,而且 是查询表单的理想应用

关于HTTP GET HTTP谓词
GET
是专门为检索资源而创建的,不可能对其进行任何更改。我的意思是它是安全的。它不会引起任何副作用。在您的案例中,应该使用
GET
请求从数据库获取数据并显示它。现有HTML页面、图像请求、数据库搜索等。。。这些都是应该使用
GET
发出的安全请求

同时,幂等项意味着执行请求724次与执行一次具有相同的效果。幂等请求第一次可能会在数据库中创建一些内容,但不会再创建,或者下次只会返回对它的引用

HTML规范继续

特别是,该公约已经确立,缔约国 HEAD方法不应具有采取行动的意义 除了检索。这些方法应该被认为是“安全的”。 这允许用户代理表示其他方法,例如POST、PUT和PUT 并以特殊方式删除,以便用户了解 请求可能不安全的操作的事实


总之,请理解您不应该使用
POST
执行安全的只读操作。

根据
$search
变量的来源,您的qu