条件之间的多重选择会给出错误的值

时间:2017-08-26 18:43:16

标签: php

我想问一下条件之间的多重选择。 我已经制作了代码,但我的回调值有误。在我的php函数中,我在条件之间给出两个,第一个来自date_awal和date_akhir,第二个来自kode和kode_mat。但是当我运行该程序时,我从该日期得到错误的值。 (example : i want select date 21-08-2017 to 22-08-2017)当我运行它时我得到了错误的价值。我刚刚从21-08-2017获得了数据,并且22-08-2017的数据没有显示,但是当我从21-08-2017 to 22-08-2017更改日期时,我可以获得数据。而且有些东西让我感到困惑,我可以从kode1和kode2之间获得正确的价值。也许有人可以解决这个问题请帮帮我

这是我的php调用函数



<?php
include("../../Connections/koneksi.php");

$date_awal=$_POST['date_start'];
$date_akhir=$_POST['date_end'];
$kode=$_POST['kode_mat'];
$kode_mat=$_POST['kode_mate'];
$sloc=$_POST['s_loc'];
$s_loc=$_POST['s_loc1'];
$type=$_POST['get_type'];
//Display all data
$rows = array();
$sql = "SELECT * FROM wjm WHERE (date BETWEEN '$date_awal' AND '$date_akhir') AND (kode BETWEEN '$kode' AND '$kode_mat') order by kode asc";
$query = mysqli_query($db,$sql);

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

echo json_encode($rows);
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

看看,如果你的db中的列是datetime类型,那么日期“22-08-2017”实际上是“22-08-2017 00:00:00”那是一天的开始。白天的一切都不包括在内..

所以要通过两种不同的方式处理它:

1.$sql = "SELECT * FROM wjm WHERE (DATE(date) BETWEEN '$date_awal' AND '$date_akhir') AND (DATE(kode) BETWEEN '$kode' AND '$kode_mat') order by kode asc";

OR 

2. $sql = "SELECT * FROM wjm WHERE date >= '$date_awal' AND date <= '$date_akhir' AND kode >= '$kode' AND kode <= '$kode_mat' order by kode asc";