Что такое код mysql_num_rows

mysql_num_rows

mysql_num_rows — Возвращает количество рядов результата запроса

Описание

mysql_num_rows() возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT. Чтобы получить количество рядов, обработанных функцями INSERT, UPDATE, DELETE, используйте функцию mysql_affected_rows() .

Пример #1 Пример использования mysql_num_rows()

= mysql_connect ( «localhost» , «mysql_user» , «mysql_password» );
mysql_select_db ( «database» , $link );

$result = mysql_query ( «SELECT * FROM table1» , $link );
$num_rows = mysql_num_rows ( $result );

echo » $num_rows Rows\n» ;

При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

Для совместимости, как алиас, доступна устаревшая функция mysql_numrows() . Однако, использовать её крайне не рекомендуется.

Использование mysqli_num_rows вместо mysql_num_row

Я искал проблему, но я не могу решить этот код, я вижу эту ошибку:

Предупреждение: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, boolean задан в C:\Program Files\EasyPHP\www\test\index.php в строке 13

и это мои PHP-коды:

В чем проблема и что мне делать?

Я хочу использовать mysqli.

У вас есть ошибка в вашем SQL-запросе. Поэтому mysqli_query() не возвращает mysqli_result , а вместо него — bool. Запустите mysqli_error($con) . Это даст вам описание ошибки. В этом случае вам не хватает котировок вокруг переменной $user_ip в вашем запросе. Это должно исправить:

Отсутствие одиночных кавычек во время поиска ip, хотя ваш запрос кажется нечетным, потому что вы получаете точно тот же ip который вы ищете. В этом случае, почему бы вам просто не использовать $user_ip ??

FPublisher

Web-технологии: База знаний

Документация PHP

mysql_num_rows

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_num_rows — Возвращает количество рядов результата запроса

Описание

int mysql_num_rows ( resource $result )

mysql_num_rows() возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT. Чтобы получить количество рядов, обработанных функцями INSERT, UPDATE, DELETE, используйте функцию mysql_affected_rows().

Пример #1 Пример использования mysql_num_rows()

= mysql_connect ( «localhost» , «mysql_user» , «mysql_password» );
mysql_select_db ( «database» , $link );

$result = mysql_query ( «SELECT * FROM table1» , $link );
$num_rows = mysql_num_rows ( $result );

echo «$num_rows Rows\n» ;

Замечание: При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

Для совместимости, как алиас, доступна устаревшая функция mysql_numrows(). Однако, использовать её крайне не рекомендуется.

mysql_num_rows вызывает сообщение об ошибке

Мой упрощенный код:

Я получаю следующее сообщение об ошибке: «Warning: mysql_num_rows() ожидает параметр 1, чтобы быть ресурсом, логический дан в C: \ XAMPP \ HTDOCS \ test \ mysqli_num_rows.php в строке 4 «

Илон Маск рекомендует:  dl в HTML

Может ли кто-нибудь сказать мне, что не так с этим (упрощенным) кодом? Thanks

Создан 18 июл. 14 2014-07-18 19:00:07 deotpit

2 ответа

Создан 18 июл. 14 2014-07-18 19:18:24 bf2020

Привет, Это не сработало! Я получаю следующую ошибку:> Предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, boolean задан в C: \ xampp \ htdocs \ test \ mysqli_num_rows.php в строке 5 – deotpit 19 июл. 14 2014-07-19 04:22:14

Мне удалось получить код, который работает. Он выглядит следующим образом:> 0) < \t echo $ num; >else < \t echo 'запись не найдена!'; >?> Спасибо! – deotpit 19 июл. 14 2014-07-19 06:03:58

У меня есть подозрение, что $result возвращается false , отсюда и ошибка о логическом значении. Это может означать, что соединение или запрос неверны.

Попробуйте положить: $result = mysql_query($sql,$con) or die(mysql_error());

Это мы надеемся, будет возвращать сообщение об ошибке, сообщающее, что это неправильно.

Также вы должны использовать mysqli или PDO API, поскольку mysql амортизируется.

Создан 18 июл. 14 2014-07-18 19:59:24 ImClarky

Привет, Этот код действительно сработал для меня! Осталось найти то, что отличается от двух кодов. > 0) < \t echo $ num; >else < \t echo 'запись не найдена!'; >?> – deotpit 19 июл. 14 2014-07-19 06:01:51

mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean given

Я знаю, что МНОГО вопросов об этом, и я искал часы для своего решения, и я просто не могу найти, что не так с моим кодом, кроме того, что mysql_query следует изменить на mysqli_query, но когда я его меняю, дает мне еще больше сообщений об ошибках, и я не знаю, что еще попробовать сейчас. Пожалуйста, помогите, если можете, это начинает занимать много времени. БЛАГОДАРЯ! (Не критикуйте, сказав: «Есть так много одинаковых вопросов». Я думаю, что каждый человек заканчивает публикацию своих сообщений, потому что они не могут найти ответ на свою проблему, потому что это не соответствует другим, по крайней мере, в моем случае I посмотрел, прежде чем спрашивать, не добившись успеха.)

Когда передается запрос UPDATE, mysql_query() возвращает логический TRUE для успеха и FALSE для отказа, а mysql_num_rows() принимает только ресурс набора результатов в качестве аргумента. Чтобы определить, сколько строк затронуло запрос UPDATE, вызовите mysql_affected_rows() с ресурсом соединения в качестве аргумента.

Это не вызывает проблемы, с которыми вы сейчас сталкиваетесь, но вам будет очень or die(mysql_error()) добавить or die(mysql_error()) в mysql_query() , чтобы уловить любые ошибки MySQL, которые происходят. Вам было бы даже лучше отказаться от функций mysql_* полностью в пользу расширения PHP PDO, как это рекомендовано в руководстве по PHP, и которое действительно не несет гораздо больше когнитивных накладных расходов в обмен на огромные преимущества, которые он предлагает в возможностях и безопасность.

Оставив это в стороне, вот как я изменил бы свой код, чтобы он больше походил на то, что вы имеете в виду:

Все, хотя это не решит все ваши ошибки. Он имеет полезные комментарии и поможет вам в нулевом вопросе. Можете ли вы выполнить это и сообщить мне, что вы на самом деле видите?

Илон Маск рекомендует:  Форматирование

// только для отладки (лучше использовать метод error_log) echo ‘

Ошибка mysql_num_rows

Здравствуйте в общем, искал не нашел решение, вот:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/********/ on line 12

04.09.2015, 23:26

Ошибка в mysql_num_rows
$t0 = mysql_query(«SELECT user_ >

Ошибка mysql_num_rows
Подключаюсь в скрипте: $link = mysql_connect($host,$user,$password); mysql_select_db($db, $link);.

Ошибка в mysql_num_rows()
Как решить проблему: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given.

Ошибка с mysql_num_rows()
Приветствую, есть огрызок кода: 9 04.09.2015, 23:37 2 04.09.2015, 23:46 [ТС] 3 05.09.2015, 00:05 4

05.09.2015, 00:05
05.09.2015, 00:06 [ТС] 5
05.09.2015, 00:08 6
05.09.2015, 00:10 [ТС] 7
05.09.2015, 00:15 8
05.09.2015, 00:20 [ТС] 9
05.09.2015, 00:22 10
05.09.2015, 00:22
05.09.2015, 00:22

Ошибка mysql_num_rows() expects parameter 1 to be resource
Постраничная навигация для сайта. Ошибка Warning: mysql_num_rows() expects parameter 1 to be.

ошибка при использовании функции mysql_num_rows()
добрый день всем.. столкнулся со следующей проблемой: Fatal error: Call to undefined function.

Ошибка Warning: mysql_num_rows() expects parameter 1 to be resource
Немогу догнать в чем ошибка. На старом компе все работало гуд. Перенес на другой. Поменял имя.

Функция Mysqli_num_rows

Функция Mysqli_num_rows получает число рядов в результирующей выборке.
Параметр Result являет собой идентификатор результата запроса, полученный с помощью Mysqli_query, Mysqli_store_result или Mysqli_use_result.

Поведение функции Mysqli_num_rows зависит от того, используется ли буферизованная или не буферизованная результирующая выборка. Пока все ряды не будут получены и обработаны для не буферизованной выборки, функция Mysqli_num_rows не вернет правильное число рядов.

Функцию Mysqli_num_rows можно смело использовать с функцией Mysqli_query, поскольку она выполняет сразу две задачи: выполняет запрос и буферизует на клиенте результат этого запроса.

Чем заменить mysql_num_rows

Ранее работало вот это

решил немного обновиться, перешел на PHP 5.5, Mysql 5.6 теперь подключение PDO и кругом одни Deprecated

Подскажите пожалуйста, чем заменить эту строку?

1 ответ 1

Ничем. mysql_num_rows() — это это абсолютно бессмысленная функция, которая никогда не бывает нужна. Вместо того, чтоб запрашивать у базы данных кучу строк и потом считать их, надо сказать базе, чтобы она посчитала сама, и вернула готовый результат.

А в данном конкретном случае у нас еще и запрос делает кучу бессмысленных операций.

Если переписывать на PDO, то подключение берем отсюда, и дальше пишем

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php mysql pdo или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.12.35412

Как узнать количество строк в таблице в базе данных MySQL

Однажды я столкнулся с этой задачей, но многие из предлагаемых в интернете решений у меня не работали. И всё же я нашёл выход. И даже не один.

Способ 1. phpMyAdmin

Начнем с самого простого и очевидного. Допустим, вам не нужно использовать полученный результат в коде, а просто узнать количество строк, только и всего.

Тогда заходим в phpMyAdmin (localhost/tools/phpmyadmin — для Денвера), затем выбираем нужную базу данных, после этого выбираем таблицу, количество строк в которой нужно выяснить, и видим следующее сообщение:

Способ 2. COUNT

Вот так выглядит сам SQL-запрос:

SQL-запрос с условием:

Реализация на PHP:

Аналогичным образом сюда можно добавить условие. Тогда код выведет число строк в таблице, удовлетворяющих условию.

Способ 3. mysql_num_rows

Этот способ позволяет подсчитать количество строк результата запроса.

Например в WordPress посты хранятся в таблице wp_posts, таким образом мы можем узнать сколько записей (постов ) хранится в базе данных (в таблице MySQL). Этот код дан только для примера (или для случаев, когда среда WordPress не подгружена), так как в WordPress подключение к базе данных осуществляется через класс $wpdb.

В результат будут включены абсолютно все записи. А как узнать количество только тех, которые опубликованы? Для этого нам потребуется немного изменить SQL-запрос.

Смотрите также

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2020 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

mysql_num_rows

mysql_num_rows — Возвращает количество рядов результата запроса

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

Возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT или SHOW, возвращающих актуальный результат запроса. Чтобы получить количество рядов, обработанных функциями INSERT, UPDATE, REPLACE и DELETE, используйте функцию mysql_affected_rows() .

Список параметров

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query() .

Возвращаемые значения

Количество рядов в результате запроса в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_num_rows()

= mysql_connect ( «localhost» , «mysql_user» , «mysql_password» );
mysql_select_db ( «database» , $link );

$result = mysql_query ( «SELECT * FROM table1» , $link );
$num_rows = mysql_num_rows ( $result );

echo «Получено $num_rows рядов\n» ;

Примечания

При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_numrows()

Смотрите также

  • mysql_affected_rows() — Возвращает число затронутых прошлой операцией рядов
  • mysql_connect() — Открывает соединение с сервером MySQL
  • mysql_data_seek() — Перемещает внутренний указатель в результате запроса
  • mysql_select_db() — Выбирает базу данных MySQL
  • mysql_query() — Посылает запрос MySQL
Илон Маск рекомендует:  Что такое код ncurses_use_extended_names
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL