Php脚本按名称从数据库中搜索记录。 (按名称过滤)

时间:2016-12-08 16:55:10

标签: php mysql

有人可以更正代码,按名称过滤记录。我知道查询,但也许我没有正确实现它。

这是我的代码。我想要按城市搜索,或者只是在文本框中输入一个名称来搜索医院。按名称搜索是为了输入字段,我应该写出我想从数据库中搜索的名称。我想提供两种选择。我应该如何正确地实现它,因为这个对我不起作用。

if (isset($_POST['search'])) {
    if (isset($_POST['search-by-city'])) {
        $city_id = $_POST['search-by-city'];

        $query = "SELECT * FROM `hospitals` WHERE `City_ID` LIKE '$city_id'";
        $result = mysqli_query($con,$query);

        if (isset($_POST['search-by-name'])) {
            $hospital_name = $_POST['search-by-name'];
            $query = "SELECT * FROM `hospitals` WHERE `Name` LIKE '$hospital_name'";
            $result = filterTable($query); {
                if (mysqli_num_rows($result) == 0) {
                    echo '<div class="col-md-12"> <h2>No recod Found</h2> </div> ';
                }
            }
        }
        while($row = mysqli_fetch_array($result)){
            $city_id = $row[3];
            $query = "SELECT `Name` FROM `cites` WHERE `ID` LIKE '$city_id'";
            $result2 = mysqli_query($con,$query);
            $row2 = mysqli_fetch_row($result2);
            $city_name = $row2[0];
            echo '<div class="col-md-4"><h3>'.$row[1].'</h3><h4>'.$city_name.'</h4><h4>'.$row[2].'</h4><h5>'.$row[3].'</h5><h5>'.$row[4].'</h5>
';
}
}

1 个答案:

答案 0 :(得分:0)

我猜你的查询应该是:

"SELECT * FROM `hospitals` WHERE `Name` LIKE '%$hospital_name%'

在字符串比较中查看mySQL manual

另外请不要在SQL查询中直接使用$ _POST变量,这是一个主要的安全问题。 (搜索sql-injection。)