我需要帮助。我知道我可以在PHP中使用“if ... elseif”,但问题是当前条件已经在一个很长的“elseif”内部所以我不希望它通过创建另一个“if ...”来嵌套它
我的搜索表单(请参见下图)和我的mysqli声明仅适用于一方(Price to)。 我希望能够:当用户选择“类别”(如“Coach”)并输入其中一个价格(来自& to)时,搜索必须按预期正常工作。 如果用户只输入“价格来自”,则该语句从输入的金额开始工作,如果他输入“价格到”,则该语句也适用于输入的金额。
我尝试使用多个运算符(OR / AND ...)但仍未达到我想要的效果。
<div class="container">
<div class="row">
<div class="col-xs-6">
<div class="row">
<div class="col-xs-5">
<div class="form-group">
<label for="Minimum">Minimum</label>
<div class="input-group">
<input class="form-control" data-val="true" id="Minimum" name="Minimum" type="text" value="0">
</div>
</div>
</div>
<div class="col-xs-2 text-center"><p>Up To</p></div>
<div class="col-xs-5">
<div class="form-group">
<label for="Maximum">Maximum</label>
<div class="input-group">
<input class="form-control" data-val="true" id="Maximum" name="Maximum" type="text" value="100">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
下面是我的sql语句,只有在我工作时才有效 我想
答案 0 :(得分:0)
一种常见方法是在WHERE
子句中添加“或输入为空”子句。从逻辑上讲,它可能看起来像这样:
select *
from tblcoach
where (price >= ? or ? is null)
and (price <= ? or ? is null)
然后你将前两个参数绑定到“price from”值,将后两个参数绑定到“price to”值。
提示:现在是开始使用查询参数和预准备语句的好时机。这将使这个和其他事情变得更容易。您可以使用当前可能的SQL注入代码执行相同的操作,可能与空字符串或默认值而不是null
进行比较。但这个想法是一样的。逻辑基本上是使用值进行比较(如果它存在)或者如果它不存在则不进行有意义的比较。