有人可以更正代码,按名称过滤记录。我知道查询,但也许我没有正确实现它。
这是我的代码。我想要按城市搜索,或者只是在文本框中输入一个名称来搜索医院。按名称搜索是为了输入字段,我应该写出我想从数据库中搜索的名称。我想提供两种选择。我应该如何正确地实现它,因为这个对我不起作用。
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>
';
}
}
答案 0 :(得分:0)
我猜你的查询应该是:
"SELECT * FROM `hospitals` WHERE `Name` LIKE '%$hospital_name%'
在字符串比较中查看mySQL manual。
另外请不要在SQL查询中直接使用$ _POST变量,这是一个主要的安全问题。 (搜索sql-injection。)