Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何处理多个ajax请求的SQL查询_Php_Jquery_Mysql_Ajax_Html - Fatal编程技术网

Php 如何处理多个ajax请求的SQL查询

Php 如何处理多个ajax请求的SQL查询,php,jquery,mysql,ajax,html,Php,Jquery,Mysql,Ajax,Html,我应该如何为每个选择设计php文件/在过滤器表单中的选择更改时,它应该与数据库、过滤器行和显示对话。我试过这样的东西 <?php if(!empty($_POST['a']) && empty($_POST['b'])){ $sql = ...; } if(!empty($_POST['a']) && !empty($_POST['b'])){ switch($_POST['b']){ //Different sql for different cases

我应该如何为每个选择设计php文件/在过滤器表单中的选择更改时,它应该与数据库、过滤器行和显示对话。我试过这样的东西

<?php
if(!empty($_POST['a']) && empty($_POST['b'])){
$sql = ...;
}

if(!empty($_POST['a']) && !empty($_POST['b'])){
switch($_POST['b']){
//Different sql for different cases. 
} 
?>


我想如果我这样做,我会错过很多条件。有没有更好的方法可以为不同的表单选择构造sql查询?

我会尝试以下方法:

$sql = "
SELECT
  *
FROM yourTable WHERE 1
".(empty($_POST['a']) ? "" : "AND city = '".$_POST['a']."'")."
".(empty($_POST['b']) ? "" : "AND fieldb = '".$_POST['b']."'")."
".(empty($_POST['c']) ? "" : "AND fieldc = '".$_POST['c']."'")."
";

等等。这样,您就不必将案例分开,并为每个案例重写sql的第一部分。

可能的答案太多,或者好的答案对于这种格式来说太长。请添加详细信息,以缩小答案集或隔离一个可以在几段中回答的问题。我建议您找一个发展论坛(也许?)来总结概括。然后,当您遇到特定的编码问题时,请回到StackOverflow,我们很乐意提供帮助。您为什么要“尝试类似的东西”,而OP为什么要“尝试这个”?请解释一下你做了什么,以及你为什么这样做,不仅是为了OP,也是为了SO的未来访客;通过AJAX调用可以设置多个contidion,因此基本SQL保持不变,并且每个contidion只有在属于条件的POST字段包含任何信息时才被激活。这确实有效。谢谢你@MichaelKunst