大家好我是php,mysql和html的新手,而我正在研究的项目有一个包含id,product,price和condition的简单数据库。在我的html表单上,我有四个复选框,其价格范围为0-25,25-50,50-75和75-100。这是我正在尝试做的一个例子:如果用户选择0-25的复选框,它应该回应表格中成本为0-25的所有产品的ID,产品,价格和条件。我有复选框值保存在数组中,但此时我完全丢失了。如何在我选中的复选框的数据库中输出值。
P.S。我听说过PDO,但我们必须在这个项目中使用mysql。 这是我的HTML:
<form action="pricefilter.php" method="post">
<br><b>Filter By Price:</b><br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="025"/> $0-$25<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="2550"/> $25-$50<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="5075"/> $50-$75<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="75100"/> $75-$100<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="100"/> $75-$100<br><br>
<input type="submit" name="submit" value="Submit" />
</form>
这是我的php:
<?php
mysql_connect ("localhost", "root","root") or die (mysql_error());
mysql_select_db ("XUSWAPSAMPLE");
$priceFilter = $_GET['priceFilter'];
$filteredResponse = array ();
foreach($priceFilter as $range)
{
if($range == 025)
{
$query = "select * from Books where Price <= 25";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 2550)
{
$query = "select * from Books where Price >= 25 AND Price <=50";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 5075)
{
$query = "select * from Books where Price >= 50 AND Price <=75";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 75100)
{
$query = "select * from Books where Price >= 75 AND Price <=100";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
if($range == 100)
{
$query = "select * from Books where Price >= 100";
$sql = mysql_query($query);
array_push($filteredResponse, $sql);
}
答案 0 :(得分:1)
您的代码中有两个错误
1)您正在使用post方法提交表单,但尝试使用$ _GET获取值,因此您应该使用$ _POST
2)你应该使用php的isset属性来检查值是否存在。
所以解决方案就是试试这个
if (isset($_POST['priceFilter']) && ($_POST['priceFilter']!="")) {
$priceFilter = $_POST['priceFilter'];
// put your remaining code here
}