我必须过滤搜索条件,使客户按价格可用性和类别进行过滤。当我尝试按价格过滤时,它只显示数字,而不是该价格的产品。我想知道是否有人可以帮助我做错了什么。
这是我的表格
<form action="results2.php" method="post">
Name <input type="text" name="price" >
<input type="submit" name="search" value="Find Me">
</form>
这是我的结果2.php
<?php
if (isset($_POST['search'])) {
$get_name = $_POST['price'];
echo $get_name;
$query = "SELECT * FROM product WHERE price LIKE '%$get_name%'";
$result = mysqli_query($connection, $query);
while ($row = mysqli_fetch_array($result)) {
$productName = $row['productName'];
$description = $row['description'];
$category = $row['category'];
$availibilty = $row['availibilty'];
$price = $row['price'];
$height = $row['height'];
echo $productName . " " . $description . " " . $category . " " . $availibilty . " " . $price . " " . $height . "<br />";
}
}
?>
我正在尝试按价格过滤,当它只显示价格而不是我的所有产品
您必须执行此操作
的方法是使用 PDO。
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
$stmt = $dbh->prepare('
SELECT
*
FROM product
WHERE
price >= :low
');
$stmt->bindParam(':low', $_POST['price']);
$stmt->execute();
// you can test the return value
while(($result = $stmt->fetch(PDO::FETCH_OBJ) !== false)
{
// output the records
}
我写的是内联的,很可能它不会开箱即用,但它向您介绍了 PDO、预准备语句以及如何解决 SQL 注入问题。
我们还鼓励您过滤和消毒$_POST
。看看 PHP filter_var
函数