Php 如何为表声明多个where条件

Php 如何为表声明多个where条件,php,Php,嗨,伙计,我有个问题。 如何仅在一个php内声明多个where子句条件。 我试图使我的项目有一个php文件的最低限度。我只想在一个php文件中创建where子句 这就是我的意思。我想把我的代码放在一个php文件中或一个php文件中。php代码如下所示 我假设这12个PHP在不同的场景中被调用。为什么不从客户端传递一些参数,让PHP知道要执行哪个场景呢 $date1= $_POST['date1']; $silo= $_POST['silo'];//This could be 'Silo 1 O

嗨,伙计,我有个问题。 如何仅在一个php内声明多个where子句条件。 我试图使我的项目有一个php文件的最低限度。我只想在一个php文件中创建where子句

这就是我的意思。我想把我的代码放在一个php文件中或一个php文件中。php代码如下所示


我假设这12个PHP在不同的场景中被调用。为什么不从客户端传递一些参数,让PHP知道要执行哪个场景呢

$date1= $_POST['date1'];
$silo= $_POST['silo'];//This could be 'Silo 1 OR 'Silo 2' etc.
// Data for Titik1
$sql = "SELECT * FROM termocouple where tanggal='$date1' AND silo='$silo'";
$query = mysqli_query($db,$sql);

为了最小化代码,如果您在同一项目中多次使用同一查询或代码,建议您创建一个函数,以便在需要执行代码时随时调用该函数

在这里,由于您使用同一个查询12次,因此必须创建一个执行该查询的函数,然后在每次需要执行该查询时调用该函数

该函数接受参数,因此您必须为该函数提供数据库连接参数$db,以便连接到数据库,因为您在函数内部使用此连接,然后还必须将where子句的值添加到参数中

因此,这里的函数将获取数据库连接$db、$date1(从$\u POST获取)和$silo(从$\u POST获取)

在函数的末尾,您可以返回希望返回的任何值,因此在您的情况下,必须返回从查询中获取的$rows数组

创建一个公共php文件并在其中创建一个函数。 假设文件名为libraries.php

在此文件中编写以下代码:

<?php
    function getRows($db, $date, $silo) {
        $sql = "SELECT * FROM termocouple where tanggal='$date' AND silo='$silo'";
        $query = mysqli_query($db, $sql);
        $rows = array();

        while($tmp= mysqli_fetch_assoc($query)) {
            $rows[] = $tmp;
        }

        return json_encode($rows);
    }
?>
在调用查询的每个文件中,您将删除php代码,并将其替换为以下内容:

<?php
include("../../Connections/koneksi.php");
include("{path-to-file}/libraries.php");

$date1= $_POST['date1'];
$silo = $_POST['silo'];

$rows = getRows($db, $date1, $silo) ;
?> 

这意味着您需要一个php文件来处理silo='silo 1'silo='silo 2'silo='silo 3'。。silo='silo 12',这意味着您需要一个可重用的代码。是吗?是的,就像那样。我想在一个php文件中使用相同的查询创建12个php文件,但选择的思洛id不同,那么为什么不将“思洛”也作为POST传递呢?和date1一样吗?并使$sql=SELECT*FROM termocouple,其中tanggal='$date1'和silo='$silo@我是说像这样。在一个php上。我想选择使用这个查询$sql=SELECT*FROM termocouple,其中tanggal='$date1'和silo='silo 1';但id的思洛存储器的值不同。id的silo的值为silo='silo 1',silo='silo 2'..silo='silo 12'您知道,您的代码很容易使用sql injectios?这也是我的建议。只需使用mysql\u real\u escape\u字符串添加一点安全性,就可以了。@keysl mysql\u real\u escape\u字符串已被弃用,在PHP7中不可用-准备好的语句可以go@JaydeepRajput在使用客户端时,就像我现在所做的那样。情况是这样的。我想显示思洛存储器1-思洛存储器12的数据,但它将显示在不同的表中,每个表仅包含思洛存储器的数据。例如:2017年10月23日,有思洛存储器1-7的数据,那么它将显示7个表,其中包含来自思洛存储器1的每个思洛存储器的数据-7@Philipp那个代码只是我写的一个快速代码。我先试试,然后我会换成你向我解释的安全卡Mario?函数$rows=getRows$db,$date1,$silo;我想我知道你的答案了。它仍然需要客户端在$silo中放入一个变量,对吗?您可以在每个页面$silo='silo 1'中将其放入静态,也可以从$\u POST请求中获取它。这取决于你也许我没有从你的回答中得出正确的结论。当我在每个页面中使用static时,我仍然会生成更多类似于您的第二个代码的代码?