Intereting Posts
Удалить / Скрыть Woocommerce Добавлен в корзину Сообщение, но Keep / Display Coupon Applied Message Определение того, является ли число силой 2 как я могу вернуть массив из php в javascript, используя ajax Как безопасно выполнять пользовательский код PHP «Неустранимая ошибка: класс не найден в ..», пакет композитора не распознан PHP-вопрос: как исправить эти инструкции if / elseif создать динамическую ссылку на основе поля ввода текста Возьмите значение массива, если имеется определенный ключ с PHP Элегантные альтернативы странному множественному наследованию Плагин wordpress: запрос после ID в плагине? Извлечь URL из строки с помощью PHP Перечислить NSDictionary с ключами и объектами, PHP-стиль Неопределенная ошибка индекса при $ em-> clear () в Symfony2 jQuery Connected Sortable Lists, Save Order to MySQL Как проверить электронную почту и электронную почту уже существует или не проверять в Yii Framework?

Почему mysqli num_rows всегда возвращает 0?

У меня возникли проблемы с возвратом числа строк с помощью mysqli. Я просто получаю 0 назад каждый раз, хотя есть определенные результаты.

if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){ $stmt->bind_param('s', $data->id); $stmt->execute(); $num_of_rows = $stmt->num_rows; $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent); while($stmt->fetch()){ //code } echo($num_of_rows); $stmt->close(); } 

Почему он не показывает правильный номер?

Solutions Collecting From Web of "Почему mysqli num_rows всегда возвращает 0?"

Вам нужно вызвать MySqli_Stmt::store_result() до поиска num_rows:

 if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){ $stmt->bind_param('s', $data->id); $stmt->execute(); $stmt->store_result(); <-- This needs to be called here! $num_of_rows = $stmt->num_rows; $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent); while($stmt->fetch()){ //code } echo($num_of_rows); $stmt->close(); } в if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){ $stmt->bind_param('s', $data->id); $stmt->execute(); $stmt->store_result(); <-- This needs to be called here! $num_of_rows = $stmt->num_rows; $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent); while($stmt->fetch()){ //code } echo($num_of_rows); $stmt->close(); } 

Смотрите документы в MySQLi_Stmt->num_rows , он говорит, что он находится прямо в верхней части страницы (в основном блоке описания) …

Попробуйте установить $num_of_rows сразу после вашего if (statement) – до bind_param … Если это не изменит ваши результаты. Трудно сказать без дополнительной информации.