使用PHP创建搜索过滤器


Creating a search filter with PHP

所以我陷入了困境,

    <input type="text" name="search">
    <select>
    <option value="Name">Name</option>
    <option value="Address">Address</option>
    <option value="company_address">company_address</option>
    <option value="contact_number">contact_number</option>
    </select>
<input type="submit">
<?php
include "connect.php";
$sql = "SELECT * FROM propertydetail";
x
?>

我的问题是,我如何使用PHP从我的数据库中选择一行填充信息,通过查询我的一个选项中的选项"name"。我需要它来回显该名称中的所有信息,即使它在我的数据库表中不止一次。

$output = NULL;
$output .= '<div>'. $name . $address .'</div>';
echo $output;

我可以使用php中的表来更好地格式化它,所以基本上我想问的是,我该如何选择"数据库中的行"

只查询一个名称。提前谢谢。我只是个初学者,所以不要对我太苛刻。

这都是非常基本的MySQL语法。查看代码学院。假设您的数据库列名与select选项中的值相匹配。一个非常基本的搜索如下:

<form METHOD="POST"><? // need to use POST and close form also at the end. ?>
    <input type="text" name="search">
    <select NAME="searchtype">...</select><? // Important you name the select! ?>
        <option value="Name">Name</option>
        <option value="Address">Address</option>
        <option value="company_address">company_address</option>
        <option value="contact_number">contact_number</option>
    </select>
    <input type="submit">
</form>
<?php
include "connect.php";
$type = mysqli_real_escape_string($_POST['searchtype']);
$search = mysqli_real_escape_string($_POST['search']);
$sql = "SELECT * FROM propertydetail WHERE ".$type." LIKE '%".$search."%'";
?>

您需要从表单提交中获取$name。然后生成一个SELECT语句来获取与其匹配的所有记录

$name = mysqli_real_escape_string($mysqli,$_POST['name']);
        $stmt = $mysqli->prepare('SELECT * FROM `youTable` WHERE `name`=?');
        $stmt->bind_param("s", $name);
        $stmt->execute();

如果您正在选择是否搜索名称、城市等…您需要相应地更新代码。