PHP 重置 $POST 值并列出所有结果

标签 php mysql

我正在尝试使用 HTML 选择下拉框来过滤 mysql 结果表。我的过滤器正在工作,但我想选择再次显示“全部”,但我得到的只是一组空白的结果。然后,当我刷新时,它保留 $POST 值,我希望重置该值,以便我的“所有”结果将显示为默认值?干杯!

$sql = "SELECT * FROM books";

if(isset($_POST['value'])) {
$catvalue = $_POST['value'];
$sql = "SELECT * FROM books WHERE category = '$catvalue'";
} else if($catvalue == 'all'){
$sql = "SELECT * FROM books";  
}

$rs_result = mysql_query ($sql);

下面是我的选择过滤器表单。

<form action='<?php echo $_SERVER['PHP_SELF']; ?>' method='post'     name='form_filter' > 
<select name="value">
 <option value="All" selected="selected">All</option> 
<option value="Design">Design</option> 
<option value="Photography">Photograpy</option>
</select> 
<br /> 
<input type='submit' value = 'Filter'> 
</form>

最佳答案

<option value="All" selected="selected">All</option> 

您使用了带有大写“A”的“全部”。 PHP 区分大小写,因此您的 php 代码应如下所示:

if(isset($_POST['value']) and $_POST['value']!='All') {
   $catvalue = addslashes($_POST['value']);
   $sql = "SELECT * FROM books WHERE category = '$catvalue'";
} else {
   $sql = "SELECT * FROM books";
}

$rs_result = mysql_query ($sql);

关于PHP 重置 $POST 值并列出所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30301658/

相关文章:

mysql - 将 int 值分配给特定字符串

php - 如何使用 Laravel 事务回滚

php - PHP —未定义索引:

php - 使用 Eloquent orm 和 mysql 的连接太多

PHP property decleration 接受数组并且不接受可以在编译过程中评估的任何其他表达式

php - MySQL PDO INSERT ... SELECT IF 语句不起作用

sql - WordPress 工作流程修改

SQL更新查询在where子句中使用聚合函数和group by?

php - MYSQL INT 加法

php - Laravel - 从多维数组中删除具有 NULL 值的元素