php 循环查询mysql,PHP MySQL计数器/循环查询

在尝试从MySQL数据库中搜索项目时,遇到一个WHERE子句的问题。当用户只搜索一个字段时,查询的末尾会多出一个'OR',导致错误。为解决此问题,需要在构建查询时避免在只有一个条件时添加'OR'。可能的解决方案是使用条件判断来插入'AND'或'OR',确保没有多余的连接词。
摘要由CSDN通过智能技术生成

我正在进行MySQL查询以搜索数据库中的项目。我已经从搜索表单中提取变量,但是我的WHERE子句遇到了一些问题。因为我不想搜索未在表单中输入的字段。我现在的代码是:

$query = " SELECT RequestID, clients.ClientName, clients.Username, RequestAssignee, requests.StatusID, requests.PriorityID, StatusName, PriorityName

FROM requests

INNER JOIN clients ON requests.ClientID = clients.ClientID

INNER JOIN statuses ON requests.StatusID = statuses.StatusID

INNER JOIN priorities ON requests.PriorityID = priorities.PriorityID

WHERE ";

if(!empty($RequestID))

{

$query2 .= "RequestID = '" . $RequestID . "' OR ";

}

if(!empty($ClientName))

{

$query2 .= "clients.ClientName = '" . $ClientName ."' OR ";

}

if(!empty($Username))

{

$query2 .= "clients.Username = '" . $Username . "' OR ";

}

if(!empty($RequestAssignee))

{

$query2 .= "RequestAssignee = '" . $RequestAssignee . "' OR ";

}

if(!empty($Status))

{

$query2 .= "statuses.StatusName = '" . $Status ."' OR ";

}

if(!empty($Priority))

{

$query2 .= "priorities.PriorityName = '" . $Priority ."'";

}

但是,您可以看到一个问题,即如果某人只搜索一个字段,则查询会在末尾添加“OR”,从而导致错误:

SELECT RequestID, clients.ClientName, clients.Username, RequestAssignee, requests.StatusID, requests.PriorityID, StatusName, PriorityName FROM requests INNER JOIN clients ON requests.ClientID = clients.ClientID INNER JOIN statuses ON requests.StatusID = statuses.StatusID INNER JOIN priorities ON requests.PriorityID = priorities.PriorityID WHERE RequestID = '3' OR

我猜我将不得不放置某种循环或计数器但不确定如何接近它。有任何想法吗?

谢谢,马特。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值