如何使用PHP创建搜索按钮

时间:2018-10-17 20:30:03

标签: php mysql

我想创建搜索按钮以查看数据库中的项目。

<form  method="post" name="searchdeals">
                <h5 class="display-5 text-left py-3">Find a favourite vehicle </h5>
                <div class="form-group select">
                    <select name="manufacturer_code" id="manufacturer_code" class="form-control" onchange="getState(this.value);">
                        <option selected>Select Brand</option>
                        <?php $ret="SELECT * FROM tbl_manufacturer";
                        $query= $dbh -> prepare($ret);
                        $query-> execute();
                        $results = $query -> fetchAll(PDO::FETCH_OBJ);
                        if($query -> rowCount() > 0)
                        {
                            foreach($results as $result)
                            {
                                ?>
                                <option value="<?php echo htmlentities($result->manufacturer_code);?>"><?php echo htmlentities($result->manufacturer_name);?></option>
                            <?php }} ?>
                    </select>
                </div>
                <div class="form-group select">
                    <select name="model_code" id="model_code" class="form-control">
                        <option selected>Select Model</option>
                    </select>
                </div>
                <div class="form-group">
                    <button type="submit" name="searchdeals" value="Filter" class="btn btn-block btn-warning"><i class="fa fa-search" aria-hidden="true"></i> Search Vehicle</button>
                </div>
            </form>

这是我搜索项目的表格。因此可以向我建议如何创建查询和代码以创建搜索按钮。

我知道在查询中使用LIKE OPERATOR,但我不知道编写代码

action.page

if(isset($_POST['searchdeals'])){

$valueToSearch = $_POST['model_code'];

$sql = "SELECT tbl_manufacturer.manufacturer_name, tbl_model.model_name, tbl_model.model_type, tbl_vehicle.*, tbl_company.comp_name
                                    FROM tbl_vehicle
                                    INNER JOIN tbl_company ON tbl_vehicle.comp_id = tbl_company.comp_id
                                    INNER JOIN tbl_model ON tbl_vehicle.model_code = tbl_model.model_code
                                    INNER JOIN tbl_manufacturer ON tbl_model.manufacturer_code = tbl_manufacturer.manufacturer_code";
$query = $dbh -> prepare($sql);
$query->execute();
$results=$query->fetchAll(PDO::FETCH_OBJ);

2 个答案:

答案 0 :(得分:0)

首先,您需要为表单执行以下操作:

<form  method="post" name="searchdeals" action="/action_page.php">

然后,action_page.php应包含使用表单中$ _POST变量构建SELECT语句的代码。

答案 1 :(得分:0)

在action.php中(假定这是处理提交的表单的文件),应使用WHERE子句和$_POST变量中的搜索词。在这种情况下,您要发布model_code

$sql = "SELECT tbl_manufacturer.manufacturer_name, tbl_model.model_name, tbl_model.model_type, tbl_vehicle.*, tbl_company.comp_name
                                    FROM tbl_vehicle
                                    INNER JOIN tbl_company ON tbl_vehicle.comp_id = tbl_company.comp_id
                                    INNER JOIN tbl_model ON tbl_vehicle.model_code = tbl_model.model_code
                                    INNER JOIN tbl_manufacturer ON tbl_model.manufacturer_code = tbl_manufacturer.manufacturer_code 
WHERE tbl_model.model_name like '%" . $_POST['model_code'] . "'%";

不确定是不是您必须比较的字段,但是您知道了。