Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 mysql查询中的多个where语句_Php_Sql - Fatal编程技术网

Php mysql查询中的多个where语句

Php mysql查询中的多个where语句,php,sql,Php,Sql,我的php中有一个sql查询,如下所示 $query1 = "SELECT time, air FROM pi_sensors_network WHERE date BETWEEN '".$date1."' AND '".$date2."'"; 但是现在我想在我的sql查询中包含一个额外的where语句,它是 WHERE location = '".$location."'"; 当然我也有我的表格 <form action="" method="get"> Sel

我的php中有一个sql查询,如下所示

$query1 = "SELECT time, air FROM pi_sensors_network WHERE date BETWEEN '".$date1."' AND '".$date2."'";
但是现在我想在我的sql查询中包含一个额外的where语句,它是

WHERE location = '".$location."'";
当然我也有我的表格

<form action="" method="get">
        Select Your location:
        <select name="location" onchange="javascript: submit()">
        <option>---</option>
        <option>FC3</option>
        <option>T12</option>
        </select>
    </form>
以及从我的数据库中获取位置的php

<?php
    if(isset($_POST['location']))
    {
    echo "<b>".$_POST['location']."</b><br><br>";
    }
?>


<?php
$location = 'FC3';

    if( isset($_GET['location'] ))
    {
        $location = $_GET["location"];
    }
?>
如何在我的sql查询中包含多个where语句?

您可以使用任意数量的where子句来使用和分隔

mysql查询中的多个where语句

不要放多个WHERE子句,以防你想到它

$query1 = "SELECT time, air FROM pi_sensors_network 
WHERE date BETWEEN '".$date1."' AND '".$date2."'" 
AND location = '".$location."'";
或者这个:

$query1 = "SELECT time, air FROM pi_sensors_network 
WHERE location = '".$location."'" AND date BETWEEN '".$date1."' 
AND '".$date2."'";
注意:两者都可以,这只取决于您的场景/选择 有


如果在第一个where语句之后需要更多where语句,请将它们写成:和

在您的示例中:

SELECT time, air FROM pi_sensors_network 
WHERE date BETWEEN '".$date1."' AND '".$date2."'" 
AND location = '".$location."'";
您可以使用和在查询中执行多个WHERE条件。试着这样做:

$query1 = "SELECT time, air 
FROM pi_sensors_network 
WHERE date BETWEEN '".$date1."' AND '".$date2."'
AND location = '".$location."'";

若设置了位置,则将在查询中插入一个新条件,若未设置,则为空

if( isset($_GET['location'] ))
            {
                $location = $_GET["location"];
                $location_q = " AND location LIKE ".$location;
            } else 
            {
            $location_q = ""
            }
    $query1 = "SELECT time, air FROM pi_sensors_network WHERE date BETWEEN '".$date1."' AND '".$date2.$location_q"'";

您可以使用AND在查询中使用多个WHERE,您需要使用条件运算符连接查询条件,这取决于您的逻辑。例如,或者,在完整列表之间,这里是GET或POST方法?这两种代码都有。