gpt4 book ai didi

Php过滤系统

转载 作者:行者123 更新时间:2023-11-30 22:42:11 25 4
gpt4 key购买 nike

我想用 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/

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