在 Dreamweaver 中筛选 php 查询


Filtering a Php Query in Dreamweaver

我必须过滤搜索条件,使客户按价格可用性和类别进行过滤。当我尝试按价格过滤时,它只显示数字,而不是该价格的产品。我想知道是否有人可以帮助我做错了什么。

这是我的表格

<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函数