Что-то не так с моим sql-запросом? Я всегда получаю эту ошибку "Warning: mysqli_fetch_assoc () ожидает, что параметр 1 будет mysqli_result, boolean given". Надеюсь, ты поможешь мне.
<?php include("connection.php"); $mysqli->query("SET NAMES 'utf8'"); $filter = "All"; if ($filter == "All"){ $sql="SELECT * FROM city "; }else if($filter == "Alphabetically"){ $sql="SELECT * FROM city order by cityName ASC"; }else if ($filter == "Region"){ $sql="SELECT * FROM city order by region"; }else{ echo "Error sql"; } $result=$mysqli->query($sql); while($e=mysqli_fetch_assoc($result)){ $output[]=$e; } print(json_encode($output)); $mysqli->close(); ?>
Я предполагаю, что вы подключаетесь к базе данных с помощью механизма OO в mysqli, так как это то, что вы используете почти для всех ваших команд mysqli
Но здесь
while($e=mysqli_fetch_assoc($result)){
вы изменили на вызовы функции функции.
Вместо этого используйте
while($e = $result->fetch_assoc()){
Если ваш запрос имеет какую-либо ошибку sql или возвращает 0 строк. Поэтому сначала проверьте число num_row
$result=$mysqli->query($sql); if(mysqli_num_rows($result) > 0 ){ while($e=mysqli_fetch_assoc($result)){ $output[]=$e; } } print(json_encode($output)); $mysqli->close();
в$result=$mysqli->query($sql); if(mysqli_num_rows($result) > 0 ){ while($e=mysqli_fetch_assoc($result)){ $output[]=$e; } } print(json_encode($output)); $mysqli->close();
Для любой ошибки mysql.
$mysqli->error;