我正在尝试使搜索工作,我已经回荡并使用了var dump,而我在浏览器中得到的是:
0没有搜索结果
object(mysqli_result)#2 (5) { ["current_field"]=> int(0)
["field_count"]=> int(4)
["lengths"]=> NULL
["num_rows"]=> int(0)
["type"]=> int(0)
}
,但我在数据库中输入了巴黎,因此它不应该回荡,没有搜索。
以下是我的代码。不确定我要在哪里出错,任何帮助都会令人赞赏。
require_once('config1.php');
error_reporting(E_ALL);
$output = '';
if(isset($_POST['search'])){
$searchq = $_POST['search'];
$sql = "SELECT a.attraction_name, a.lat, a.long, a.cost FROM zz_attractions a
INNER JOIN zz_city c ON a.city_id = c.city_id WHERE c.city_name LIKE
'%searchq%'";
$result = mysqli_query($conn, $sql);
$count = mysqli_num_rows($result);
if ($count == 0) {
$output = 'there was no search results';
echo $count;
echo $output;
var_dump($result);
} else {
while ($row = mysql_fetch_array($sql)) {
$attraction_name = $row['attraction_name'];
$lat = $row['lat'];
$long = $row['long'];
$cost = $row['cost'];
$output .= '<div>'.$attraction_name.' '.$lat.' '.$long.' '.$cost.'</div>';
}
}
}
city_id attraction_id attraction_name lat long cost
1 1 Eiffel Tower 49 2 25
您错过了您传递到SQL语句的变量的$ OFF。尝试
$sql = "SELECT a.attraction_name, a.lat, a.long, a.cost FROM zz_attractions a
INNER JOIN zz_city c ON a.city_id = c.city_id WHERE c.city_name LIKE
'%$searchq%'";
另外,请查看对SQL语句的绑定参数,而不是直接传递它们,因为您当前的代码使您容易被注入https://www.w3schools.com/sql/sql_invention.asp|http://php.net/manual/en/mysqli-stmt.bind-param.php