- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 4 个变量制作一个像这样的 php 过滤系统:
echo"<form action='' method='GET' class='form-inline' role='form'>";
$query = "SELECT Naam FROM Soortmaaltijd"; //Alle soortmaaltijden ophalen
$result= mysql_query($query) or die(mysql_error());
echo"<div class='row'>";
echo"<div class='form-group' >";
echo"<label for='soortmaaltijd'>Soort maaltijd</label></br>";
echo"<select name='Soortmaaltijd' class='form-control' id='soortmaaltijd'>";
echo"<option value=''>Alle</option>";
while($row=mysql_fetch_array($result)) {
echo"<option value='$row[SoortmaaltijdID]'>$row[Naam]</option>";
}
echo"</select>";
echo"</div>";
$query = "SELECT * FROM Soortgerecht"; //Alle soortgerechten ophalen
$result= mysql_query($query) or die(mysql_error());
echo"<div class='form-group' >";
echo"<label for='soortgerecht'>Soort gerecht</label></br>";
echo"<select name='soortgerecht' class='form-control' id='soortgerecht'>";
echo"<option value=''>Alle</option>";
while($row=mysql_fetch_array($result)) {
echo"<option value='$row[SoortgerechtID]'>$row[Naam]</option>";
}
echo"</select>";
echo"</div>";
echo"<div class='form-group' >";
echo"<label for='moeilijkheid'>Moeilijkheid</label></br>";//Moeilijkheid
echo"<select name='moeilijkheid' class='form-control' id='moeilijkheid'>";
echo"<option value=''>Alle</option>";
echo"<option value='1'>1</option>";
echo"<option value='2'>2</option>";
echo"<option value='3'>3</option>";
echo"</select>";
echo"</div>";
echo"<div class='form-group' >";
echo"<label for='tijd'>Max bereidingstijd</label></br>";//Max bereidingstijd
echo"<select name='tijd' class='form-control' id='tijd'>";
echo"<option value=''>Alle</option>";
echo"<option value='5'><5</option>";
echo"<option value='10'><10</option>";
echo"<option value='15'><15</option>";
echo"<option value='20'><20</option>";
echo"<option value='25'><25</option>";
echo"<option value='30'><30</option>";
echo"</select>";
echo" <button type='submit' name='filter' class='btn btn-primary btn-lg-2'>Filter</button>";
echo"</div>";
echo"</div>";
echo"</form>"; ?>
但即使某些过滤器设置未更改,我如何构建一个使用所有变量的查询。可以创建 20 个查询,但这会花费太多时间。是否可以创建这样的东西:
WHERE Tijd = $tijd AND Soortmaaltijd = $soortmaaltijd AND Soortgerecht = $soortmaaltijd AND Moeilijkheid = $moeilijkheid
但是如果像'Tijd'这样的过滤器没有设置一些值,'Tijd'有一个标准值吗?
最佳答案
您可能只需要提前构建完整的 WHERE
,这样您就可以发送一个 WHERE
语句,而不是向您的查询发送 4 个变量。
示例 1(构造一个连接您的条件的 $where var):
$where = "WHERE ";
$count = 0;
if ( !empty($tijd) ) {
$where .= "`Tijd` = " . $tijd . " ";
++$count;
} elseif( !empty($soortmaaltijd) ) {
if ($count == 0)
$where .= "`Soortmaaltijd` = " . $soortmaaltijd . " ";
else
$where .= "AND `Soortmaaltijd` = " . $soortmaaltijd . " ";
++$count;
} elseif( !empty($soortgerecht) ) {
if ($count == 0)
$where .= "`Soortgerecht` = " . $soortgerecht . " ";
else
$where .= "AND `Soortgerecht` = " . $soortgerecht . " ";
++$count;
} elseif( !empty($moeilijkheid) ) {
if ($count == 0)
$where .= "`Moeilijkheid` = " . $moeilijkheid . " ";
else
$where .= "AND `Moeilijkheid` = " . $moeilijkheid . " ";
++$count;
} else {
$where = null; // if none of the conditions are met we null
// the entire `WHERE` statement so we can safely
// send to our SQL query regardless of no conditions
// being met
}
// then your sql statement could be something like:
$sql = "SELECT *
FROM tablename
$where"; // remember: if ($where == null)
// that means no filters are set and
// all records from table are returned
此示例假设您希望将空变量作为 null
查询来处理。在您的问题中您是否要跳过查询空值还是要将空变量设置为默认值有点不清楚。如评论中所述,使用三元运算符将 vars 设置为切换默认值非常容易。
示例 2(为空变量设置默认值):
$default_tijd = "whatever you want";
$tijd = ($tijd) ? $tijd : $default_tijd; // if $tijd is already set take
// that value, else use $default_tijd
但是,我几乎可以肯定您不想返回未设置任何过滤器的记录,因此为您的 vars 设置默认值只是在您不想的时候过滤记录。您可能想要的是第一个示例。
关于Php过滤系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823442/
场景 网站页面有一个带有分页、过滤、排序功能的表格 View 。 表中的数据是从REST API服务器获取的,数据包含数百万条记录。 数据库 REST API 服务器 Web 服务器 浏览器 问
我有一个表student,其中的列dte_date(日期)具有值(2019-01-01、2019-02-01、2019-03-01)。 .等) 条件: dte_date 列中没有重复值。 但 dte_
我有一些逻辑可以根据不活动的用户创建通知。我正在获取具有以下属性的用户列表。我想做的只是在部门有非 Activity 用户时触发我的创建通知方法。因此,给出下面的列表,基本上会创建 1 个通知,表示部
使用 GPS 开发跟踪应用程序。一切都很好,但有时由于封闭区域或恶劣天气,我得到的分数不准确。当您绘制它们时,它看起来不对,有很多跃点/跳跃。 我应该运行什么算法来过滤掉不良信号对我来说,这看起来像是
我正在尝试按变量类型过滤对象数组。节点是一个具有位置的对象,但以不同的方式定义——作为点、矢量或附件。这是一个代码: class Joint { var position:Position
我想做的是在向量上创建一个过滤器,以便它删除未通过谓词测试的元素;但不太确定我该怎么做。 我根据谓词评估输入向量中的每个元素,例如在我的代码中,is_even 仿函数在 device_vector 向
我是 Gremlin 的新手,我正在使用 Gremlin 3.0.2 和 Stardog 5.0。我编写此查询是为了找出 schema.org 本体中两个实体之间的路径。以下是输出 - gremlin
考虑以下示例数据表, dt 30 的那一行需要去 - 或者如果其中两行 > 30相隔几秒钟,删除所有 3 个。然而 ,当我们有 4 行或更多行时,我们需要删除时间差 > 30 没有另一对 < 30
我正在考虑使用 ZeroMQ,并尝试了一些示例。但是,我无法验证 ZeroMQ 是否支持一些重要的要求。我希望你能帮助我。 我将使用这个简单的场景来问我的问题: 出版商(例如交易所)提供(大量)股票的
我需要从我的查询中过滤掉大量的对象。目前,它正在抓取类中的所有对象,我想将其过滤为查询字符串中的相关对象。我怎样才能做到这一点?当我尝试时,我收到一个属性错误说明 ''QuerySet' object
如何在 Prometheus 查询中添加标签过滤器? kube_pod_info kube_pod_info{created_by_kind="ReplicaSet",created_by_name=
我有包含字符串的列的数据框,并希望过滤掉包含某些字符串以外的任何内容的所有行。考虑下面的简化示例: string % dplyr::filter(stringr::str_detect(string,
我有以下数据框,其中包含多行的角度变化值: 'data.frame': 712801 obs. of 4 variables: $ time_passed: int 1 2 3 4 5 6
我有一个 BehaviorSubject我希望能够filter ,但要保持新订阅者在订阅时始终获得一个值的行为主题式质量,即使最后发出的值被过滤掉。有没有一种简洁的方法可以使用 rxjs 的内置函数来
我有一个 RSS 提要,每天输出大约 100 篇文章。我希望过滤它以仅包含更受欢迎的链接,也许将其过滤到 50 个或更少。回到当天,我相信您可以使用“postrank”来做到这一点,但在谷歌收购后现已
我有这样一个重复的xml树- this is a sample xml file yellowred blue greyredblue 如您所见,每个项目可以具有不同数量的颜色标签
我以为我在 Haskell 学习中一帆风顺,直到... 我有一个 [[Int]] tiles = [[1,0,0] ,[0,1,0] ,[0,1,0]
我在使用 Knockout.js 过滤可观察数组时遇到问题 我的js: 包含数据的数组 var docListData = [ { name: "Article Name 1", info:
我在 mongoDB 中有这个架构: var CostSchema = new Schema({ item: String, value: Number }); var Attachm
给定一个数据框“foo”,我如何才能只选择“foo”中的那些行,例如foo$location =“那里”? foo = data.frame(location = c("here", "there",
我是一名优秀的程序员,十分优秀!