Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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/8/mysql/55.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_Mysql_Sql - Fatal编程技术网

Php 按条件获取SQL行

Php 按条件获取SQL行,php,mysql,sql,Php,Mysql,Sql,我试图根据某些条件获取一些行,但它没有按照我想要的方式工作; 请查看我的代码并分享您的想法 $query = mysqli_query($sqli,"SELECT * FROM `table` WHERE `name` = '$nameFA' OR `name` = '$nameLA' OR `ft` LI

我试图根据某些条件获取一些行,但它没有按照我想要的方式工作; 请查看我的代码并分享您的想法

            $query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
                `name`      =       '$nameFA'   OR 
                `name`      =       '$nameLA'   OR
                `ft`        LIKE    '%$nameFA%' OR
                `ft`        LIKE    '%$nameLA%' AND
                `information`   LIKE    '%$info%'
            ");
如您所见,
name
ft
的输入可能有两个不同的值。 如果
信息
具有类似
$info
变量的内容,则应获取行。

请尝试以下方法:

$query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
    (`name`      =       '$nameFA'   OR 
    `name`      =       '$nameLA'   OR
    `ft`        LIKE    '%$nameFA%' OR
    `ft`        LIKE    '%$nameLA%')
    AND `information`   LIKE    '%$info%'
");
或者这样,因为我不知道您想做什么,所以我们不知道如何放置括号:

$query = mysqli_query($sqli,"SELECT * FROM  `table` WHERE 
    `name`      =       '$nameFA'   OR 
    `name`      =       '$nameLA'   OR
    `ft`        LIKE    '%$nameFA%' OR
    (`ft`        LIKE    '%$nameLA%' AND
        `information`   LIKE    '%$info%'
    )
");
语句中有多个AND或OR时,始终添加括号

考虑:

  • a=做一只狗
  • b=吠叫
  • c=步行
当:(你是一只狗,或者你在叫)你在走路时,a或b和C是正确的


a或(b和C)在以下情况下为真:你是一只狗,或(吠叫和走路)

你混合了
以及
条件,而没有
()
来界定它们。除非您非常熟悉mysql的运算符优先级规则,否则我建议您输入显式的
()
,以确定您的逻辑应该是什么。e、 g.
(X或Y或Z)和(P)
代码始终有效。有时它并没有达到我们想要的效果。也许如果你提供表格和所需的输出?@MarcB,thnx用于快速响应,我从未在没有
()
的情况下使用
,这会是个问题吗?我写了很多类似上面的查询。我搞不懂你在说什么,你能按照你说的方式重写查询吗?我不知道你的逻辑应该是什么,所以我所要做的就是以一种仍然无法使查询正常工作的方式乱丢括号。试着指定输入是什么,你希望它做什么,它实际在做什么