使用PHP创建搜索过滤器

时间:2015-12-31 17:54:24

标签: php html mysql

所以我坚持这个,

    <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中的表格更好地格式化, 基本上我要问的是,我该如何选择 “从数据库中排”

只查询一个名字。提前致谢。我只是一个初学者,所以不要太难评判我。

2 个答案:

答案 0 :(得分:2)

这都是非常基本的MySQL语法。查看codeacademy。假设您的数据库列名与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."%'";

?>

答案 1 :(得分:0)

您需要从表单提交中获取您的$ 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();

如果您选择是否搜索姓名,城市等...您需要相应地更新您的代码。