gpt4 book ai didi

php - 在php中使用超过2个组合参数的内连接sql查询显示记录

转载 作者:行者123 更新时间:2023-11-29 20:03:05 25 4
gpt4 key购买 nike

我是 PHP 和 SQL 新手;我正在编写一个 SQL 查询来显示具有以下逻辑的记录:

  1. sql 表中有 9 个单元格。我想使用 3 个参数的组合来搜索记录。即两个日期之间的搜索、位置搜索和属性类别类型搜索。

  2. 搜索条件如下所示:

Date From : _________(date picker) - Date Till:______________(date picker)

Sales Agent : Dropdown ( dehi, mumbai,.....,)

Mobile : __________ (text)

所需的结果组合:

a.所有 3 个组合均为 True -(用户填写日期、销售代理、手机。)

b.任何一个组合都是 True。 (用户只需填写一个参数之一。)

c.只有 2 个组合为 True。 (用户填写2个参数组合,即日期和手机(或)手机和销售代理(或)销售代理和日期)

问题:我无法只进行一种组合。

这是我的 SQL 查询和页面语法:

if(isset($_POST["submit"]))
{
$date11=$_POST["date1"];
$date22=$_POST["date2"];
$salesagent1=$_POST["salesagent"];
$mobile1=$_POST["mobile"];

$result = "select
ordertable.order_date,
ordertable.order_id,
customer.cust_name,
customer.cust_mobile,
customer.cust_email,
customer.cust_city,
ordertable.quantity,
ordertable.total,
orderstatus.order_sta,
salesagent.name
from customer inner join ordertable
on customer.custid=ordertable.cust_id inner join salesagent
on salesagent.said=ordertable.sales_id inner join orderstatus
on orderstatus.id= (select order_statusid from orderhistory where order_id1= ordertable.order_id order by date_added desc limit 1)
where (ordertable.order_date between '$date11' and '$date22') or (customer.cust_mobile='$mobile1') or (ordertable.sales_id='$salesagent1')
order by ordertable.order_id desc";

$records=mysqli_query($CON,$result);

最佳答案

当每个参数为空时,将null或您选择执行的任何操作设置为:

$result = "select 
ordertable.order_date,
ordertable.order_id,
customer.cust_name,
customer.cust_mobile,
customer.cust_email,
customer.cust_city,
ordertable.quantity,
ordertable.total,
orderstatus.order_sta,
salesagent.name
from customer inner join ordertable
on customer.custid=ordertable.cust_id inner join salesagent
on salesagent.said=ordertable.sales_id inner join orderstatus
on orderstatus.id= (select order_statusid from orderhistory where order_id1= ordertable.order_id order by date_added desc limit 1)

where ('$date11' IS NULL OR '$date22' IS NULL OR ordertable.order_date between '$date11' and '$date22') AND ('$mobile1' IS NULL OR customer.cust_mobile='$mobile1') AND ('$salesagent1' IS NULL OR ordertable.sales_id='$salesagent1')
order by ordertable.order_id desc";

关于php - 在php中使用超过2个组合参数的内连接sql查询显示记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40460416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com