Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Пояснение функции)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: mysqli_num_rows
grizzlynet
Отправлено: 24 Сентября, 2011 - 20:10:01
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




Приве всем!
Хотел бы узнать пояснение функции mysqli_num_rows в данном коде, т.е она возвращяет значение 1 если ряд существует? Не могу понять ?
PHP:
скопировать код в буфер обмена
  1.  
  2. // Connect to the database
  3.   $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  4.  
  5.   // Grab the user-entered log-in data
  6.   $user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
  7.   $user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));
  8.  
  9.   // Look up the username and password in the database
  10.   $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
  11.   $data = mysqli_query($dbc, $query);
  12.  
  13.   if (mysqli_num_rows($data) == 1) {
  14.     // The log-in is OK so set the user ID and username variables
  15.     $row = mysqli_fetch_array($data);
  16.     $user_id = $row['user_id'];
  17.     $username = $row['username'];
  18.   }
  19.  
 
 Top
MrSource
Отправлено: 24 Сентября, 2011 - 20:14:16
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Янв. 2010  
Откуда: Украина, Донецк


Помог: 0 раз(а)




grizzlynet пишет:
Приве всем!
Хотел бы узнать пояснение функции mysqli_num_rows в данном коде, т.е она возвращяет значение 1 если ряд существует? Не могу понять ?
PHP:
скопировать код в буфер обмена
  1.  
  2. // Connect to the database
  3.   $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  4.  
  5.   // Grab the user-entered log-in data
  6.   $user_username = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_USER']));
  7.   $user_password = mysqli_real_escape_string($dbc, trim($_SERVER['PHP_AUTH_PW']));
  8.  
  9.   // Look up the username and password in the database
  10.   $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";
  11.   $data = mysqli_query($dbc, $query);
  12.  
  13.   if (mysqli_num_rows($data) == 1) {
  14.     // The log-in is OK so set the user ID and username variables
  15.     $row = mysqli_fetch_array($data);
  16.     $user_id = $row['user_id'];
  17.     $username = $row['username'];
  18.   }
  19.  


Функция возвращает количество строк полученных после запроса.

Запрос:

PHP:
скопировать код в буфер обмена
  1. $query = "SELECT user_id, username FROM mismatch_user WHERE username = '$user_username' AND password = SHA('$user_password')";


Подразумевает только одну запись в базе, поэтому возвратит значение максимум 1.



Для примера сделаем запрос:

PHP:
скопировать код в буфер обмена
  1. $data = mysql_query('SELECT user_id FROM mismatch_user');
  2. $data = mysql_fetch_array($data);
  3.  
  4. echo mysql_num_rows($data);


Он нам вернёт количество пользователей в базе, т.е. количество записей в таблице, которые мы вытащили из базы.

(Отредактировано автором: 24 Сентября, 2011 - 20:15:07)

 
 Top
grizzlynet
Отправлено: 24 Сентября, 2011 - 20:20:27
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




а в каком виде возвращяется результат запроса в mysqli_num_rows? У меня не выводит.

(Отредактировано автором: 24 Сентября, 2011 - 20:23:59)

 
 Top
OrmaJever Модератор
Отправлено: 24 Сентября, 2011 - 20:30:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




num_rows возвращает только число.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
MrSource
Отправлено: 24 Сентября, 2011 - 20:30:44
Post Id



Гость


Покинул форум
Сообщений всего: 77
Дата рег-ции: Янв. 2010  
Откуда: Украина, Донецк


Помог: 0 раз(а)




grizzlynet пишет:
а в каком виде возвращяется результат запроса в mysqli_num_rows? У меня не выводит.


int
 
 Top
grizzlynet
Отправлено: 24 Сентября, 2011 - 20:35:49
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




MrSource, OrmaJever
Спасибо!

(Отредактировано автором: 24 Сентября, 2011 - 20:40:57)

 
 Top
snikers987
Отправлено: 24 Сентября, 2011 - 21:52:56
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




документацию надо читать mysqli_num_rows

(Отредактировано автором: 24 Сентября, 2011 - 23:36:09)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB