繁体   English   中英

Mysqli基于两个不同的字段选择查询

[英]Mysqli select query based on two different fields

这是我的表结构
表:销售

invoice_no  prd_code    quantity    unit_price  discount    tax total_tax   date    delet
   135          1          1            120         0        5      0     1/8/2016      1
   135          1          1            120         0        5      0     1/8/2016      0
   135          2          3            30          0        0      0     1/8/2016      0
   135          3          1            165         0        5      0     1/8/2016      0
   136          2          4            30          3        5      0     1/16/2016     0
   136          1          2            120         0        0      5     1/16/2016     0
   136          1          2            120         0        0      5     1/16/2016     1
   136          1          2            120         0        0      5     1/16/2016     1
   137          1          2            120         0        0      0     1/15/2016     0
   137          1          2            120         0        0      0     1/15/2016     0
   138          2          12           30          0        0      6     1/16/2016     0
   138          3          10           165         0        0      6     1/16/2016     0

这是我的HTML代码

<input type = "date" id = "fmdte" name = "fmdte" class = "form-control" />
<input type = "date" id = "todate" name = "todate" class = "form-control" />
<input type = "text" id = "tax" name = "tax" class = "form-control" />
<input type = "submit" id = "ser" name = "ser" value = "Search" />

这是我的PHP代码:

if (isset($_POST['ser']))
{
   $fmdt = $_POST['fmdte'];
   $todt = $_POST['todate'];
   $tax_ser = $_POST['tax'];
   $purqry = $db->execute("select * from sales where date BETWEEN '$fmdt' and '$todt' and (tax='$tax_ser' OR total_tax='$tax_ser') and delet='0'"); //,order_no
}

在此表中,有两个字段,一个是tax ,另一个是total_tax ,tax字段用于存储逐项计税,total_tax用于存储发票中的总税。
如果在tax字段(!= 0)total_tax值存储中的值存储为零,则两个字段的初始默认值为零;如果在total_tax字段(!= 0)tax字段值存储中的值存储为零,则有时没有存储任何值tax和total_tax字段,因此其默认值为零。
我想搜索零税项,将税和total_tax字段组合在一起
如何搜索tax = 0和total_tax = 0 (避免tax> 0和total_tax> 0)

让我们尝试一下

    if (isset($_POST['ser']))
    {
         $fmdt = $_POST['fmdte'];
         $todt = $_POST['todate'];
         $tax_ser = $_POST['tax'];

         //use concat when passing variable value
         $purqry = $db->execute("select * from sales ".
         "where (date BETWEEN '". $fmdt ."' and '". $todt ."') ".
         "and (tax= ". $tax_ser ." OR total_tax= ". $tax_ser .") and delet='0' "); //,order_no
    }

我找到了解决办法。

if (isset($_POST['ser'])) {
    $fmdt = $_POST['fmdte'];
    $todt = $_POST['todate'];
    $tax_ser = $_POST['tax'];
    if ($tax_ser == '0') {
        $purqry = $db->execute("select * from sales where date BETWEEN '$fmdt' and '$todt' and (tax='$tax_ser' and total_tax='$tax_ser') and delet='0'");
    }
    else {
        $purqry = $db->execute("select * from sales where date BETWEEN '$fmdt' and '$todt' and (tax='$tax_ser' OR total_tax='$tax_ser') and delet='0'");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM