Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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 多个SQL搜索-或命令_Php_Sql - Fatal编程技术网

Php 多个SQL搜索-或命令

Php 多个SQL搜索-或命令,php,sql,Php,Sql,我的用户现在可以按地址搜索订单。我想做的是让他们能够搜索多个条件。让他们按地址、城市、州等进行搜索 我试过使用下面的代码,但似乎不起作用 $sql = ("SELECT order_number, sitestreet FROM `PropertyInfo` WHERE `sitestreet` LIKE '%$street%' OR `sitecity` LIKE '%$city%' AND `user` LIKE '$user'"); $result = mysql_query($sq

我的用户现在可以按地址搜索订单。我想做的是让他们能够搜索多个条件。让他们按地址、城市、州等进行搜索

我试过使用下面的代码,但似乎不起作用

$sql = ("SELECT order_number, sitestreet FROM  `PropertyInfo` WHERE  `sitestreet` LIKE '%$street%' OR `sitecity` LIKE '%$city%' AND `user` LIKE '$user'");

$result = mysql_query($sql);
我认为它没有读取$user中的值,因为它显示了所有用户的所有订单

如何使用多个serach值搜索订单


谢谢大家!

将OR语句括在括号中,使其形成一个顶级条件,用户是另一个顶级条件:

$sql = '
  SELECT 
    `order_number`, 
    `sitestreet` 
  FROM  
    `PropertyInfo` 
  WHERE  
     (
        `sitestreet` LIKE "%'.$street.'%" OR 
        `sitecity` LIKE "%'.$city.'%"
     ) AND 
     `user` = '.$user;

另外请注意,如果希望与
用户
列直接匹配,请使用
=
而不是像这样的
。我假设
$user
是一个数字ID。

将OR语句括在括号中,这样它就形成了一个顶级条件,用户就是另一个顶级条件:

$sql = '
  SELECT 
    `order_number`, 
    `sitestreet` 
  FROM  
    `PropertyInfo` 
  WHERE  
     (
        `sitestreet` LIKE "%'.$street.'%" OR 
        `sitecity` LIKE "%'.$city.'%"
     ) AND 
     `user` = '.$user;
另外请注意,如果希望与
用户
列直接匹配,请使用
=
而不是像
这样的
。我假设,
$user
是一个数字ID…

像这样试试怎么样

$sql = ("SELECT order_number, sitestreet FROM PropertyInfo WHERE (sitestreet LIKE   
      '%$street%' OR sitecity LIKE '%$city%') AND user LIKE '$user'");
像这样试试怎么样

$sql = ("SELECT order_number, sitestreet FROM PropertyInfo WHERE (sitestreet LIKE   
      '%$street%' OR sitecity LIKE '%$city%') AND user LIKE '$user'");

和的优先级高于或(有关详细信息,请参阅)。您需要将OR语句括在括号中,以便在AND语句之前将其作为一条语句进行计算

SELECT order_number, sitestreet 
FROM  `PropertyInfo` 
WHERE  (`sitestreet` LIKE '%$street%' OR `sitecity` LIKE '%$city%') 
AND `user` LIKE '$user'

和的优先级高于或(有关详细信息,请参阅)。您需要将OR语句括在括号中,以便在AND语句之前将其作为一条语句进行计算

SELECT order_number, sitestreet 
FROM  `PropertyInfo` 
WHERE  (`sitestreet` LIKE '%$street%' OR `sitecity` LIKE '%$city%') 
AND `user` LIKE '$user'
尝试:

您应该将ORs分组在一起。从它的书写方式来看,我相信它的解读是“如果街道匹配,忽略任何其他条件(或),否则城市和用户都必须匹配。”

此外,G molvi的观点也很好,除非您正在寻找模式匹配,否则请使用
=

HTH

试试:

您应该将ORs分组在一起。从它的书写方式来看,我相信它的解读是“如果街道匹配,忽略任何其他条件(或),否则城市和用户都必须匹配。”

此外,G molvi的观点也很好,除非您正在寻找模式匹配,否则请使用
=


HTH

我认为用户上的like应该在user='user'的位置,而不是我认为用户上的like应该在user='user'的位置