mysqli_fetch_array() возвращает NULL вместо значения COUNT()

#php #mysql

#php #mysql

Вопрос:

Я использую код SELECT COUNT(id) FROM blog.posts WHERE hidden='0' , чтобы узнать, сколько страниц нужно сгенерировать для разбивки на страницы на веб-сайте. Этот запрос возвращает следующую таблицу;

 |COUNT(id)|
|9        |
  

Но я столкнулся с проблемой. Мой PHP-скрипт для обработки этой информации повторяется «. Вместо ожидаемого значения ‘9’.

 $result=mysqli_query($conn,$sql);
$pages=mysqli_fetch_array($conn);
echo $pages[0];
  

Есть идеи, почему это происходит?

Комментарии:

1. COUNT не даст вам размер таблицы. Он вернет общее количество записей в вашей таблице.

2. Отредактировано @VuralAcar, это то, что я ищу.

Ответ №1:

Параметр для mysqli_fetch_array() или любого из mysqli_fetch_* вызовов api должен быть a mysqli_result , а не объектом соединения

 $result = mysqli_query($conn,$sql);
$pages = mysqli_fetch_array($result);    //<--- change
echo $pages[0];
  

Комментарии:

1. О, попал в точку сквайр!

Ответ №2:

попробуйте: SELECT COUNT(id) as count FROM blog.posts WHERE hidden='0'

и затем:

 $result=mysqli_query($conn,$sql);
$pages=mysqli_fetch_array($conn);
echo $pages['count'];
  

Комментарии:

1. Не повезло, он по-прежнему возвращает ‘p’ .

2. вы видели, что у вас нет знака ‘$’ в вашей строке кода: echo pages[0]; ?

3. Я этого не уловил, исправлено, но теперь оно возвращает null .