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


Содержание

��� ���������� ���������� �����, ������������ �������� mysql?

��� ���������� ���������� �����, ������������ �������� mysql? ��������� PHP..

��������� �������� ����� � ���������� �������.

�� ������ ������ ��������� ��������� � ��������� ���. �� �� ��������, ����� ���� ��� ���������� ���������� �� �����������, �� API ������������� ������������� ������� mysql_num_rows, ������� ����� ���������� ��� ���������� ����� � ���������.

��� ������������ � PHP, ��������, ��� ������� mysqli_num_rows. ��������� �� ��������������� ������, ����� ���������, ��� ����������� PHP, ��� ������� ������ � �������������� ������� mysqli:

��������� ���������� �����, ��������������� ��������� ���������.

������ ����������� COUNT (*) — ��. ������� ����� � ����������� �� MySQL. ��������:

�������� ������ ������ ��� ������������� LIMIT.

���� �� ������������ ����������� LIMIT, �� ������ �����, ������� ����� �� �������� ��� ����, ����������� SQL_CALC_FOUND_ROWS � ����� �������, ����� SELECT FOUND_ROWS();

��� ����� ������� ������ ��� �� ����� �������� �����������, � ��� ����� ����� ��������� ����� ������� ������, ����� �������� ���� � ���������� ��� ����� �������� ����� ��������, ����� �������� �������� ������.

���� ��� ����� ������ �������� � ������� �������� SQL, �� ������ ������������ ���������.

���� ��� SQL-������ ����� ����������� LIMIT , � �� ������ ������, ������� �������� ������ � ���� ������ ������ �� ������ ������������ SQL_CALC_FOUND_ROWS , �� ������� ������� SELECT FOUND_ROWS(); . ��� ���������� ���������� ����� A LOT ����� ����������, ��������� COUNT(*)
������ (����� �� ���������� MySQL):

���� �� ������, ����� ��������� � ����� ������������ ����� ������ ���-�� ����� �����. ������������� PHP.

�����������, ��� �� ����������� ������� mysql_ ��� mysqli_, �� ��� ������ ��� ������ ���� �������� ������.

������, ���� �� ����������� PDO, ��� ������� ������� ��� �������� ����� �����, ���������� ��� ������ ��������� select, � ���������. �� ������ ������������ count() � ������ ����������� (������ �������� ��� ��������� ����������).

���, ���� ��� ���������� ������ �����, � �� ������, PDOStatement:: fetchColumn() �� ��������� SELECT COUNT (1).

FOUND_ROWS() ������ ���������� ����� ����� �������.

���� �� ���������� ������ � ������� WordPress, �� ������ �������� ������ � ���������� �����, ������������ � ������� $wpdb- > num_rows:

���� ��� ����� ������������ ����, ���������� �� ������� �� ������� mysql, �� ��������� ���������:

���� �� ���������� ���������� ��� ��������, �� ���������� ���������� ����� ������������ ��������������� �� ������ �������:

��� ��������� ����� � $wpdb- > update � $wpdb- > delete.

��� � � ������ � 2015 ����� � ���������� ����������������� mysql_* , ��� PDO — ������ ������������.

����� ������������

��� ���� ���������� � ������� ����� 2 ��� ����� echos ����. ���� �� ����������������� 2 ��������� ����������� � ���, ����� ����������, ������� �� ���� ���������� �������� rowCount, � ���� ���, ������ ��������� ��������.

PDOStatement:: rowCount() ���������� ���������� �����, �� ������� ������ DELETE, INSERT ��� UPDATE.

For most databases , PDOStatement:: rowCount() �� ���������� ���������� �����, �� ������� ������ ���������� SELECT. ������ ����� ����������� PDO:: query() ��� ������ ��������� SELECT COUNT (*) � ��� �� ��������� � �������� ������ ��������������� ��������� SELECT, ����� ����������� PDOStatement:: fetchColumn(), ����� �������� ���������� �����, ������� ����� ������������. ����� ���� ���������� ����� ��������� ���������� ��������.

��������� ���������� ����� GROUP BY

18.01.2013, 16:18

����� �� ��������� ������ ��� GROUP BY?
�����������. ���� ������� � 1 000 000 �������: CREATE TABLE IF NOT EXISTS `tab` ( `id`.

�������� ���������� (count) ��������������� (group by) �����
��� ������, ����� �������� ���������� ������������ �� �������� ����������� ���� �������? ��.

��������� ���������� ������ ����� �������
������������ ������! ������� �������� �� ������� ��������, �� ���� ��������� �������� ������ �����.

��������� ���������� �������, ������� ����� �������
��������� ���������� �������, ������� ����� �������

Mysql_num_rows — ���������� ���������� ����� ���������� �������

(PHP 3, PHP 4 , PHP 5)

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_numrows() . Однако, использовать её крайне не рекомендуется.

The reason it’s just as slow is that to count that way as it is to fetch, minus the data transfer.

Even when executing a limit query, when you ask it to fetch the number of total rows, it must scan the whole table every time to calculate the count.

Re dzver at abv dot bg’s note.

I just ran some tests using MySQL Super Smack. Surprisingly, a SELECT * followed by a SELECT COUNT(*) actually was close in speed to a SELECT SQL_CALC_FOUND_ROWS * followed by a SELECT FOUND_ROWS(), but the SQL_CALC_FOUND_ROWS solution was still a bit faster.

Perhaps it varies by table structure? Either way, it might be worth checking which is faster for your application.

Error — Query failed: «.mysql_error().»

«);
$num_rows = mysql_num_rows($result);
if ($num_rows) <
while ($myrow = mysql_fetch_row($result)) <
$first_name = $myrow[0];
print («

Line:».__LINE__.» num_rows:$num_rows first_name:$first_name
$query

// Here 1 row is returned with a value of 0 when the password is wrong rather than reporting the password error.
$query = «SELECT COUNT(first_name) FROM users_tbl WHERE user_ «;
$result = mysql_query($query, $connection) or die («

Error — Query failed: «.mysql_error().»

«);
$num_rows = mysql_num_rows($result);
if ($num_rows) <
while ($myrow = mysql_fetch_row($result)) <
$count_first_name = $myrow[0];
print («

Line:».__LINE__.» num_rows:$num_rows count:$count_first_name
$query

In response to oran at trifeed dot com:

You are only experiencing this behaviour because you have not given your FOUND_ROWS() result an alias:

$qry = mysql_query ( ‘SELECT FOUND_ROWS() AS total’ );
$rst = mysql_fetch_array ( $qry, MYSQL_ASSOC );
echo $rst[‘total’];

SELECT SQL_CALC_FOUND_ROWS together with
SELECT FOUND_ROWS()

Only worked with the following syntax:
$result = @mysql_query($query);
$resultTotal = @mysql_query(«SELECT FOUND_ROWS()»);
$res= mysql_fetch_array($resultTotal);
echo $res[‘FOUND_ROWS()’];

Re my last entry:

This seems the best workaround to get an ‘ordinary’ loop going, with possibility of altering output according to row number
(eg laying out a schedule)

After all there is an array of row arrays, as signified by
mysql_num_rows($result):

Say this gives «40 rows» : it would be useful to know when the iteration is on row 39.

The nearest seems to be «data seek»:but it connects directly to a
row number eg (from mysql_data_seek page)

for ($i = mysql_num_rows($result) — 1; $i >= 0; $i—) <
if (!mysql_data_seek($result, $i)) <
echo «Cannot seek to row $i: » . mysql_error() . «\n»;
continue;
>

= it still wouldn’t solve knowing what row number you’re on in an ordinary loop.

One reason for this situation is the php fetch (fetch-a-single-row) construction, without any reasonable FOR loop possibility with row numbers.

Suggestion:
$Rows[$i] possibility where
$i would be the row number

$Rows[$row[], $row[], $row[]. ]
0 1 2 etc

— the excellent retrieval WITHIN a row ( $row[$i] ),
while certainly more important, is not matched by
similar possibilities for rows themselves.

and Count($result) doesnt work of course, $result being a
mere ticket-identifier.

Just wanted to add my 2 cents in regards to the mysql functions:
SQL_CALC_FOUND_ROWS
SELECT FOUND_ROWS()

It was difficult finding any information on PHP usage.
What wasn’t (or currently isn’t) mentioned is that:

$query = «SELECT FOUND_ROWS()»;

Will return a ‘recordset’ .. that holds the ‘number of rows’, not the actual value. So the correct usage is:

$result = mysql_query($query);
$total_records = mysql_result($result, 0);

Not:
$total_records = mysql_query($query);

As some of the literature .. may suggest to you.

Some user comments on this page, and some resources including the FAQ at :

This is not a particularly universal solution, and those who read these comments on this page should also be aware that

select count(*) may not give correct results if you are using «group by» or «having» in your query, as count(*) is an agregate function and resets eachtime a group-by column changes.

select sum(..) . left join .. group by . having .

can be an alternative to sub-selects in mysql 3, and such queries cannot have the select fields replaced by count(*) to give good results, it just doesn’t work.

I may indeed be the only one ever to encounter this — however if you have a myisam table with one row, and you search with valid table and column name for a result where you might expect 0 rows, you will not get 0, you will get 1, which is the myisam optimised response when a table has 0 or one rows. Under «5.2.4 How MySQL Optimises WHERE Clauses» it reads:

*Early detection of invalid constant expressions. MySQL quickly detects that some SELECT statements are impossible and returns no rows.

*All constant tables are read first, before any other tables in the query. A constant table is:
1) An empty table or a table with 1 row.
2) A table that is used with a WHERE clause on a UNIQUE index, or a PRIMARY KEY, where all index parts are used with constant expressions and the index parts are defined as NOT NULL.

Hopefully this will keep someone from staying up all night with 1146 errors, unless I am completely mistaken in thinking I have this figured out.

The fastest way to get the number of rows in a table is doing this:

$total = mysql_result(mysql_query(«SELECT COUNT(id) FROM yourtable»),0);

As long as there are no NULL ids (shouldnt be), it will return the correct rows extremely fast. If you already used yourtable though, it is faster to use mysql_num_rows() on the result of it.

MySQL 4.0 supports a fabulous new feature that allows you to get the number of rows that would have been returned if the query did not have a LIMIT clause. To use it, you need to add SQL_CALC_FOUND_ROWS to the query, e.g.

$sql = «Select SQL_CALC_FOUND_ROWS * from table where state=’CA’ limit 50»;
$result = mysql_query($sql);

$sql = «Select FOUND_ROWS()»;
$count_result = mysql_query($sql);

You now have the total number of rows in table that match the criteria. This is great for knowing the total number of records when browsing through a list.

Mysql_num_rows ���������� 0


������� ������� �����. ����� �� �� �������, �� ������ �������� ������ �� ����������.
��������� ������.
�� ��� ������� ������� ����� php, mysql_num_rows ���������� 0.
mysql_query(«��� ������») or die(mysql_error()) ������ � ������� ������ �� �������.
������� � ���� ��� ����������, ��� ������������ ����� phpmyadmin ������� ��������� ���������.
�����, ��� ����������� � ��������?

������� �� ���������.

COUNT(*) �� �����. num_rows �������� ��� ��������, ����� �� ���-��, ��� ��� � ����� ������ ����� ��������� ����, ������� ��� � ����.

mysql_num_rows($result)

Guest

������ ����� �����,
��� �����:

���������:
������ ������(html)..
����� � ������� ����(������):

� ����������:
���� ������ �� ������� � ������ � ������� ���� ������ �� ��� ��, �.�. ����� 0
���� ������ ������� — �� �� ������� � ��� ����� ��..
� ���� ������ �� �������, �� ��� ������ � ����� �������(��� ���������� ���-��) � ����� ��� ���� ������ �� ��������� >0, �� �������� ���������� ��������..

������: ��� � ��-������ �������� ������ ������� �������..

������: ��� �� ���?

RomikChef

Guest

Demiurg

Guest
Guest

������:
���� ������� ������� � ������ ����..

��� � ����� �������:

Demiurg

Guest
Guest

���� — ��� � ������ ������ ��� �� ������� � ������ ������� � ���������� ���� �������, � ���� �� ��� �����..

P.S. ���� ��������� ��������� ����_��� — ���� �������� ���-���� � ����.. � ����� ����..

RomikChef

Guest

������. �����-�� � ���� ���� � ������, � ������� ���������� �� ������� �����������.
mysql_num_rows($result) ��� ������ ������� ����� ���������� ������ ���� � �� �� �����.
� ���� �� ������� ������ � �����, ��� ���-�� �� ��� ������, ��� ����.

��-������, � ����� ������ �������, ������ ��� ���� ����, �������, ��������:
while (($row=mysql_fetch_array($result))) <
$allm=((int)mysql_num_rows($result));
>
��� �������� �� � �����, � ���� ���
$allm=mysql_num_rows($result);
���� ����, ��� � ���� �������� �������� ����, ��� ��� ��-�� ����� � ���� � ���������� ������, � ������� �� ����� � ����� ������. ���� ��� �������, �� � while �� ���� �� �����������, ��������������, $allm �������� �������.

��-������, �� ���������� ������ ��� ���������, ����� ����� ���� ������� ������?
��� ��� �������

����� �������� ���� ����� ����� internal error � ����� ������? �� �� �������? ��� ���� �����? ���, �����, �����, ������� ���� �������?

����� ������� ��� ��� ������, ������ �������? ������ �� ����� ����� �� ������.

���� � ���� ��� ����� ���� — ����� �� ������� � ������ �������?

��� ���������� ���������� �����, ������������ �������� mysql?

��� ���������� ���������� �����, ������������ �������� mysql? ��������� PHP ..

��������� �������� ����� � ���������� ������� �

�� ������ ������ ��������� ��������� � ��������� ��. �� �� ��������, ����� ���� ��� ���������� ���������� �� �����������, �� API ������������� ������� mysql_num_rows, ������� ����� ���������� ��� ���������� ����� � ����������.

��� ������������ � PHP, ��������, ��� ������� mysqli_num_rows . ��������� �� ��������������� ������, ����� ���������, ��� ����������� PHP, ��� ������� ������ � �������������� ������� mysqli:

��������� ���������� �����, ��������������� ��������� ��������� �

������ ����������� COUNT (*) � ��. ������� ����� � ����������� MySQL. ��������:

�������� ������ ������, ����� ������������ LIMIT �

���� �� ������������ ����������� LIMIT, �� ������ �����, ������� ����� �� �������� ��� ����, ����������� SQL_CALC_FOUND_ROWS � ����� �������, � ����� SELECT FOUND_ROWS ();

��� ����� ������� ������ ��� �� ����� �������� �����������, � ��� ����� ��������� ����� ������� ������, ����� �������� ���� � ���������� ��� ����� �������� ����� ��������, ����� �������� �������� ������.

� ������, ���� ��� ����� ������ �������� � ������� �������� SQL, �� ������ ������������ ���������.

���� ��� SQL-������ ����� ����������� LIMIT , � �� ������ ������, ������� SQL_CALC_FOUND_ROWS ������ � ���� ������ ������ �� ������ ������������ SQL_CALC_FOUND_ROWS � ����� SELECT FOUND_ROWS(); ��� ���������� ���������� ����� A LOT ����� ����������, ��������� COUNT(*)
������ (����� �� ���������� MySQL):

���� �� ������, ����� ��������� � ����� ������������ ����� ������ ���-�� ����� �����. ������������� PHP.

�����������, ��� �� ����������� ������� mysql_ ��� mysqli_, �� ��� ������ ��� ������ ���� �������� ������.

������, ���� �� ����������� PDO, ��� ������� ������� ��� �������� ���������� �����, ���������� ��� ������ ��������� select, � ���������. �� ������ ������������ count () � ������ ����������� (������ �������� ��������� ����������).

���, ���� ��� ���������� ������ �����, � �� ������, PDOStatement :: fetchColumn () �� ��������� SELECT COUNT (1) �.

FOUND_ROWS() ���������� �������� ����� ����� �������.

���� �� ���������� ������ � ������� WordPress, �� ������ �������� ������ � ���������� �����, ������������ � ������� $ wpdb-> num_rows:

���� ��� ����� ������������ ����, ���������� �� ������� �� ������� mysql, �� ��������� ���������:

���� �� ���������� ���������� ��� ���������, �� ���������� �����, ����������, ������������ ��������������� �� ������ �������:

��� ����� ��������� � $ wpdb-> update � $ wpdb-> delete.

��������� ��� 2015 ���, � ���������� ���������������� mysql_* , ��� PDO � ������ ������������.

����� ������������

��� ���� ���������� � ������� ����� 2 ��� ����� echos ����. ���� ������������� ���� ��������� � ����������, ������� �� ���� ���������� �������� rowCount, � ���� ���, ������ ��������� ��������.

�� ����������� �� PDOStatement :: rowCount :

PDOStatement :: rowCount () ���������� ���������� �����, �� ������� ������ ���������� DELETE, INSERT ��� UPDATE.

For most databases PDOStatement :: rowCount () �� ���������� ���������� �����, �� ������� ������ ���������� SELECT. ������ ����� ����������� PDO :: query () ��� ������ ��������� SELECT COUNT (*) � ���� �� �����������, ��� � ��� ����������� �������� SELECT, � ����� ����������� PDOStatement :: fetchColumn (), ����� �������� ���������� �����, ������� ����� ����������. ����� ���� ���������� ����� ��������� ���������� ��������.

���������� ���������� ������� MySQL: ������ ����

������� COUNT()

������� COUNT() ���������� ���������� ������� � �������, ��������������� ��������� ��������.

������� COUNT(expr) ������ ������� ������ �� ������, � ������� ����������� ��������� expr �������� NOT NULL .

����������� �� ����� ������� �������� ������������� ������� COUNT() �� ���������� � �������� ��������� � COUNT(*) . � ���� ������ ��������� ��� ������, ��� ����������� �� ����, NULL ��� ��� NOT NULL .

��������, ������� COUNT(*) ���������� ����� ���������� ������� � �������:

��� ��������� ���������� ������� � ������� �� �����

������ PHP+MySQL-���� ��� �������� � ������ ������ ���������� �����:

���� ������ ������������ ����� ������� ������� ������������� ������� COUNT() . �� � ������� ���� ������� ����� �������� � ������ ������.

������ ������������ ������� ������� � ���� ���������, ������� COUNT(column_name) ���������� ���������� ������� ����� �������, ������� �� �������� �������� NULL . ������ �� ���������� NULL ������������.

������������ ������� mysql_num_rows() ������, ������ ��� ��� ����, ����� ������ ����� ���������� �������, ����� ��������� ������ SELECT * FROM db , �� ���� �������� ��� ������, � ��� ������������, ������� ���������������� ������������ ������� count .

������������� ������� COUNT() �� �������

��� ��� ���� ������ ������������� ������� COUNT() . ��������, ���� ������� ice_cream � ��������� ����������, � ������� ��������� �������������� ��������� � �������� ����������:

id name
1 �������� � 1�
1 100% ���������
1 ������ � 1
2 ������
2 ��������

������: ����� ���������, ������� ������������ ���������� ���������� � ������ ���������.

������� ���� ������ ��������:

SELECT id, COUNT(*) FROM ice_cream GROUP BY id

���������:

id count
1 3
2 2

���� ���� ������� ���������� ����� � ���������� ���������� ������� � ������, �� ����� ��������������� ����� �����:

������

��������������, ��� ������� ����� ������� ����� � ������� COUNT() ����� ���������� ���������, ������������ NULL ��� NOT NULL . ���� ������ ����� ��������� � ��������� ������ ���������� NOT NULL .

�� ��, ����� ��� �� ������, ������ � �������� WHERE . ��� ����� ������� ���������� ������� ��������������� ������������� �������.

� ��� ���������� MySQL ����� ������������ ���������� ����� � ����������� ����������? ��-���� ���� ����� ������� (������ � ���������) � ��� ������������ ���������� ����� ����������� > � ��������� 3 ? ������� ������� �������� �� COUNT GROUP BY ������������ �������� � ��������� �� ����?

���� ������� ORDER � ������� ���������� ������. � ORDER ���� ���� ITEM � ������������ ������. ��� ����� �������� ��� ��������� �������� ���������� ����� ����� ���������� ������ �����? �� ���� ������ ����� ���������� ����� � ���������� ������������� ����� ������� � �������.

������ �������� �� ������������ � ������������ ��� ������ ����.
� MySQL ������-�� ������� �� ������. ������������� ���-�� ���� COUNT(MAX(COUNT(‘item’) GROUP BY item)) , �� ������� ��� ������.

���� ������� �������!

��� ������ ��� � �������:

SELECT item, COUNT(item) AS count FROM order GROUP BY item ORDER BY count DESC;

�� ������ �������� ���������� ��������� ������� ITEM � ������� ��������.

�����, ��� ����� �� ��� ��������. �� ������� ��� ���������.

���� ����� �������� ������������ �������� ������, ����� ���������� ���������� �����, ���������� �������� SELECT . ��� ����� ����� ������������ ��������� LIMIT � �������� ����������:

SELECT item, COUNT(item) AS count FROM order GROUP BY item ORDER BY count DESC LIMIT 1;

SELECT item � ��� ���� �������. � ������������ ���������� (� ����������� ����� �������) ���� ����� ����� ����� �� ���.

COUNT(item) AS count

COUNT(item) � ��� ��������� ����������. � ������������ ������� ��� ���� ����� ����������, ���� �� ������� ��� �������� ���, ��� � �������� ����������� AS count .

a AS b � � SQL ������ ��������, ��� �������� ������/��������� a ����� ��� b �.

������ ��������� �����:


��, lukesky, �����. ������� �� ������.

���� ���� ������ ��������� ���������� �������, �� ������������ ������� mysql_num_rows �������� ����������.

�� ����, ����� ����������� ���������� �������, ������ ���������� ��� ������������, �� �������� ������ ����� ������ � ����� ������������ ������ ������� ����� �� �������������.

3.5.1 ������������ �������� �������

���� ���������� ���������� �������� � �������?�

SELECT MAX(article) AS article FROM shop

3.5.2 ������, ���������� ������������ �������� ���������� �������

���� ���������� �����, ������ � ���� ������ �������� �������?�

� ANSI SQL (� MySQL 4.1) ��� ����� �������� ��� ������ ���������� �������:

SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)

� ������� MySQL �� 4.1 ����� ������ ����������� � ��� �����:

1. ������� �������� ������������ �������� ���� �� ������� ��� ������ ��������� SELECT.
2. ��������� ��� ��������, ���������� ��������� ��������� ������:

SELECT article, dealer, price
FROM shop
WHERE price=19.95

���������� ��� ���� �������: ������������� ��� ������ �� �������� ��� � ����� ����� �������� ������ ������, ��������� ����������� �������� LIMIT:

SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1

����������: ���� ���������� ��������� ����� ������� ������� (��������, ������ �� ��� ����� 19,95), ������, ������������ LIMIT, ���������� ���� ���� �� ���!
3.5.3 ������������ �������� ������� ��� ������

���� ���������� ���������� ���� �� ������� �������?�

SELECT article, MAX(price) AS price
FROM shop
GROUP BY article

+���+��-+
| article | price |
+���+��-+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+���+��-+

�� ����������� ������� ������ ����������:
$result = mysql_query(«SELECT COUNT(*) FROM news»);
$result = mysql_num_rows($result);

� ����, ������ ����� ������. ��� ������������ �������� ���������� ������� GET � ������?

� ���������� ������
index.php?option=com_content&view=article& >,
������� �������� �=5 � ������ ������, �� �������� �� ����������.

��� �� ������� � �������. �� ��������� ������ � ���������� �������� ���������� ������ GET.
index.php?option=com_content&view=article& >? a=5

������ ������� ��������������� ����� ����� ��������� ���������:
index.php?option=com_content&view=article& >& a=5

������� �� ���������.

������� ������ � ��������:

`id` `user_id`
1 2
2 3
3 3
4 4
5 4
6 4

������-�� � ���� �� ������� ���������� �����

��� ����� ��������� ������������ �������� `user_id` � ������ ������, � ���� ��������� ������ ���������� ��������������� �������
������ ��� �� ��� �� �����? ������ ����������, ��� ����� �� ���������?
�������� � mysql_result($res, 0); �� ��������� ������ ���� � 2 . ���� ������ ��������� 3 .

��������� �������� ���������� ������� � ������ ������ ������ ���� �����:

user_id ���������� �������
2 1
3 2
4 3

�������� � ������� ������. ���� � ������ $row[0] . ���� ����������� ����� �� ���� �����, ��� �� ��������, � ���� ������ ��� ������ ������.

��� ����������� ���������� ������� � ������ ������ � ������ ����������

$res = mysql_query(«SELECT user_id, COUNT(*) FROM table GROUP BY user_id»);

COUNT(*) � ������� ������� ����� �������. � ���������� � GROUP BY ���� ������� ������� � ������ ������, � �� ���������� �����.

� ��� ����� ��������� ���������� �����?

� ��� ���, ���������� �����? ���� �� ������ ��������� ������� ���������� ������� SELECT `user_id`, COUNT(*) FROM `table` GROUP BY `user_id` , �� ��� ����� ������ �������� ��� ���:

������ ���������� ����� � ��������� ������ ������������� ������������ ������. ���� �� ������ ����������, ����������, �������� ��.

�������, badevlad. ������ ��� ����� ������������ � ������������� �������.

������� � �� ��������� �������� ������ ���, �� � ���� ���������� ������ ������ ��������� ���-�� ����� , � �� ���-�� ������� � ������. �.�. �� ������� ������ ��������� ��� ������ � ��������� ������ ���� 3.

��� ������� fortresseo, ������ ������ �� �������� ��� �������, �. �. �� ������� ������ ���-�� ������� � ������ ������, � �� ���-�� �����.

� � �� ���� ��� ��� �������

����� ��� � MySQL �����:
SELECT COUNT(DISTINCT user_id) FROM table

��� ��� ���, ���� �������:
SELECT COUNT(*) FROM (SELECT DISTINCT user_id FROM table) a

�_�. �������� ��� � ���� �� ����
� �������� ��� �������. ��� ������� �������� ��� ����.

������������ � �������������� �� ��� ��������� ��������� � �������� ������� MySQL � ����������� ���������� id.

�� ������ ���������� ��� ��������� ������� ����� ������ � ����? �������� ���� ���� ������ � ���� ��������� �������. ������� ���� ����� ������?

�������� ��� ��� ������ �����

���������� ����������! �� ���� ��� ������� ������ �� �����������

� ���� �� ������� ��������� ������. ����� ����� 3 ������.
� ������ ������ ���� ������ �� ��������� � ��������� ���������.
����� ����� ���: /articles-item.php? >

��� �� ���� ��������� comments.php ������� ��������� ����������� � ��������� �������. Comment .
� ����� articles-item.php ��������� ��������� ���������� � �������������. ����������� ������� �� ������� �� >

id post
1 7
2 7
3 4
4 2
5 7
6 4

������ �������. �� ������� ����� ������ ������ ������ �������� ������� ��������� � ����� �� ���������� ��� � >

����� ����� ���. � ����������� ������� � �������� ��� �������� ���� ��������� ����������� ��������. ����� ������� ��������� ���-�� ������� � ���� ���������. ��� ��� ���� �����, ����� �� �����, � ����. �����������, ������ ���� ��������� ���������� ����� ������. ������ �� ��.

�������. � ����� ���, ��� ��� ��� �����������.

���� ������� � ������� id (����� ��������), post (����� ����� � ������� ����������� ����� ��������), author , ��� �����, ���� � �. �.
����������, ����������, ��� ���������� ���������� ������������ ������� ������������?

SELECT COUNT(*) FROM ������� WHERE autor=’�������’

������:
SELECT COUNT(*) AS postuser FROM ������� WHERE autor=��������

� ��� postuser � ����� ����������.

����� ��������� ���������� ���������� �������� � ������ �� ���� ��������, � ����� ������� ������ � ������

� �������� ��� ��� �������

$per=(«�������������� ����������������������� �����»);
$per1=(«��������� ��������������������� �����»);
$per2=(«�������� ������������ �����»);
$per3=(«������������� ������� ������������������»);
$per4=(«����������� �����»);
$per5=(«����� ���������»);
$per6=(«����� ��. ��������»);
$per7=(«�������� ������»);
$per8=(«244»);
$per9=(«246»);
$per10=(«344»);
$per11=(«346»);
$per12=(«444»);
$per13=(«446»);

$res = mysql_query(«SELECT COUNT(*) FROM kniga_povrezhdenii_i_neispravnostey_lokomotivov where zavod=’$per’ or ‘$per1’ or ‘$per2’ or ‘$per3’ or ‘$per4’ or ‘$per5′»);
$row = mysql_fetch_array($res);
$total = $row[0]; // ����� �������

$res2 = mysql_query(«SELECT COUNT(*) FROM kniga_povrezhdenii_i_neispravnostey_lokomotivov where Nremontnoi_brigad=’$per8′ or ‘$per9’ or ‘$per10′»);
$row2 = mysql_fetch_row($res2);
$total2 = $row2[0]; // ����� �������

echo $total;
print(«»);
echo $total2;
print(«»);

if ($total>$total2) <
echo («zavod»);

> else
echo («brig»);

�� ������ ������� ��� �� �� ���, ������ ��� �� ������� ����� ���������� �����, � � ������ ��� ����, �������������

�������� ���������� ������� ��� � ��� �� ����� � �� ������ ����� ���������� ����������� � ������ (39 ������������:)

������ ������, �������� �� �����������.

����������� ��� ������ SELECT id, COUNT(*) FROM ice_cream GROUP BY id ������������ � �������� WHERE , �������� �������� ����� �������� ������� ������� ��� � ������� name.
����� ��������� ������� �����
id count
1 2
� �� ���� ����������, ����� ������ ���������� � �����������
id count
1 2
2 0
�.�. � ���������� ���������� ������� ��� ������� ��������. ��� ����� ��������� ������, ����� ������� �������� �� �������������

������ ����� �� ���. ���������������� �� PHP, ������ ������������?

��-��, ���. ��� �������� � �����. ����� ����������� � ��������������. � ����� ������ ��� �������� �� ������ �������. ��� ����, �����������, ����� ������� �������: ������� ������ ���� ������?�.

������� ������� ����� �����! ����� ����� ����� ������������, ������� ����� ������ ���������� ����� ����� � ��� ��� ����� ��� � ��������� � ��������� ���������! ��� ��� ������� ������� ������ �����

����������. ���� ��������, �� ��������� +1 � ����. � ���� �� ��� ����������.

������������, �������� ����������� ���������:
���� ���������� ���� � ������ ����������� ��������, ����� ��� ����� �������� ��, ���������� �������� ����� 2.

�� ����� ������� �SELECT number, COUNT(number) AS count FROM tab_data GROUP BY number� �������:

number count
2934234 28
2934235 5
2934236 42
2934238 2
2934239 3
2934240 2
2934247 2
2934248 2
2934249 2
2934250 2
2934251 9
2934252 2
2934253 2
2934256 3

� ������ � count 2 �� ���� ��������.

���� ���������� ������ ���:

// ������ ������
$query = mysql_query(«SELECT chan_id, COUNT(chan_id) AS count FROM streams GROUP BY chan_id»);
// �������� ���-�� �������
$result = mysql_num_rows($query);
echo «���������� �������: «.$result.»; «;
// �������� ��������� � ������
for ($i=0; $i $v) <
// �������� ������ � count = 2
if ( $v[‘count’] == 2) <
// ��� ������ ��� ��������
echo $v[‘chan_id’].»»;
>
>

// ������ ������
$query = mysql_query(�SELECT chan_id, COUNT(chan_id) AS count FROM streams GROUP BY chan_id�);
// �������� ���-�� �������
$result = mysql_num_rows($query);
echo ����������� �������: �.$result.�; �;
// �������� ��������� � ������
for ($i=0; $i $v) <
// �������� ������ � count = 2
if ( $v[�count�] == 2) <
// ��� ������ ��� ��������
echo $v[�chan_id�].��;
>
>

// ������ ������
//$query = mysql_query(«SELECT chan_id, COUNT(chan_id) AS count FROM streams GROUP BY chan_id»);
// �������� ���-�� �������
//$result = mysql_num_rows($query);
//echo «���������� �������: «.$result.»; «;
// �������� ��������� � ������
//for ($i=0; $i $v) <
// �������� ������ � count = 2
//if ( $v[‘count’] == 2) <
// ��� ������ ��� ��������
//echo $v[‘chan_id’].»»;
//>
//>

��� ���� ��� ������� ���������((( ������, ��� ��?

������������!
�������, �� ������� ����� ������ �����, �� �� ����������, ����� ������.
���� ��� �������:
������� �������� parts � ������: id | part (��������, �����, ����� �)
������� ��������� cats � ������: id | id_part | cat (������, ���������, ��������)
������� ������ data � ������: id | id_cat | text | ��������� ����.
�����������, `cats`.` > � `data`.` >
��� ��� ������, ��������� � ���� ������� � ���������, ������ ������ ��������� �� �� �������, ��� ��� � ����:

����������, ����������, ��� �������� ������ � �������� ���������� $count ���������� ������, ��������������� ������ ���������.
�������.

��� ����� ������.
SQL-������� � visual foxpro. ������� ������� ���������� ������� �� �������� ������� ��������. ��������� ���

SELECT CNT(num), name1+� �+LEFT(name2,1)+�.�+LEFT(name3,1)
FROM fond, abonent
WHERE fond.num=abonent.num
GROUP by num,name1

�� ��������. ������� �� ������� �������, ������ ���� �� ���� ������.

LOCAL cSQL, cKod
SELECT 2
cKod=ALLTRIM(STR(num))

cSQL=�SELECT COUNT(fond.num), abonent.name1+� �+LEFT(abonent.name2,1)+�.�+LEFT(abonent.name3,1)+�.� � + ;
� FROM base3!fond, base!abonent� + ;
� WHERE fond.num = abonent.num � + ;
� GROUP BY num, name1 �

WITH thisform.Grid2
.RecordSource=� �
.RecordSource=cSQL
ENDWITH

������ � SQL. ���� ������� � ��������� UserID (��� �����), TimeUsers (��������� ����� ����������� �� �����), Datetime (���� � ������� ���� ��� �� �����), UserApp (���������� � �������� ������� ����). �� ���� ���� ���� ��� �������� �� ���� ��������� ��� � ������ �������� ����������.
����� ������� �� ������� ����� ��������� ����� �� ���������� ���� � � ���� ���������� ������� ����.
�������!

������� ����������� ���������� ����������� ����� �� ����:

SELECT `UserApp` FROM `tablename` WHERE `User

����� ��������� ����� ���������:

SELECT `TimeUsers` FROM `tablename` WHERE `User GROUP BY `TimeUsers`

������������!
�������� ������ ��������� ������.
������� 2 �������:
id1 descript
1 descr1
2 descr2
3 desct3

id1 id2
1 1
1 2
2 3
2 4
2 5


��������� ��������� ������ � SQL, ������� �� �������

id1 descript count
1 descr1 2
2 descr2 3

count � ���������� ��������� id1 �� 2-� �������.

������������. ������ � ����� ��������� ������, �������� �����������.

���� 2 �������:
-posts [id, title, text]
-comments [comment_id, post_id, text, published]

���������� ������� ��� ������ �� ������� post � ��� �� ���������� �������������� (�.�. published = TRUE) ������������.

SELECT p.*, c.*, COUNT(*) AS `counts` FROM `posts` AS p, `comments` AS c WHERE c.published = 1 AND p. >

�� ������� ������������ (published = TRUE) ����� ������������ �������� �������� 0 , 1 ����� INT ��� ENUM

���� ����� ����� ������, ���� �������
id name_hotel zvezd
1 ��������1 5
2 �������� 2 4
3 �������� 3 5
����� ������� ����� ���������
5 ����� ������� �� ( ������ ���� �������� 2)
4 ������ ������� �� (� ����� 1)

SELECT `zvezd`, COUNT(*) AS `counts` FROM `tablename` GROUP BY `zvezd`

�������, ���� ������� ���������� ������������ � ���������

������� �����
lgid
18
18
7
18
7
7
12
12
��� � ������ �������
18=>3
7=>3
12=>2
��������? ������� �������

�������. �����, ������ � �� ������.
�����������, ��� ���� ������� ����� ����������, ��� ������� ������� � ����� ���� � �����.

� � ������� � ���� COUNT:
SELECT *, COUNT(` ORDER BY `id` DESC
COUNT ������� ������, �� ��������� ������
� ��� ������� � ��� ��� ������ ������� � ������� � �� ����� ���������� ��������.
������� ��������:
SELECT *, COUNT(` GROUP BY `id` ORDER BY `id` DESC
����� �������� ������ ������ �������� ))))

� ������ ����� ������ ��������� ���-�� ��������� �������?

$totalRows � ���-�� �������. $list � ������ � ��������.

� ����� � ������ ����� ������ ������� �� ���� ������ ��������� �� php �������� count():
$totalRows = count($list);
��� �� ������ ���� �������, ����� � �������������� � ���������, �� ������� �����)

���, ������ �� ���������:

�� ����� ������������ mysql_num_rows , ��� $i++ , ��� ���� ����� � ������, �� �� �������������� ���������� �� � ����������� �������� ������������ COUNT , ������� ����� ���� ����� �� ������ � ���������� ��������� ������� ��� ������ $i++ , ������ ������������ ����� ������ ������������.

������� ���� ������������ COUNT , �� �������� ������ � ��� �����: ������ ������ + ������ ���������� ��������� ������.

P.S.: �������� �� � �������, ����, 10 �������� �� �������� ������� � ���������� �� � $i++ �������� ����� ����, � � ����������� �������� ������� ������� ���-�� �������������.

�� ����� ����� JOIN LEFT ��� ��� �� ����� �����?

������������.
���� ���� �uchot�, � ������� �pacient�

Id first_name last_name date

1 ������ ������ 12/03/ 2014
2 ������� 12/03/2014
3 ����� ����� 13/03/2014
4 ����� ������� 14/03/2014

��� ����� �� ������� � 2 ������ �� �������� ������� �data_outcoming�
����� ��������� ������ � MYSQL
������:1. ��� ���������� ���������� ����� � ������� �������� ������� � first_name�?
������: 2. ��� ���������� ���������� ����� � ������� ���������� ������� � first_name�?

��� ��������� ����
CREATE TABLE IF NOT EXISTS `patient` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

����� ������� �� ��������!
$sql=�SELECT COUNT (*) as count FROM `pacient` WHERE `first_name`IS NULL�;
$res=mysql_query($sql);
$counts=mysql_fetch_assoc($res);
$count=$counts[�count�];
echo � �.$count.� �;

�� ��������:
SELECT COUNT (*) as count FROM pacient WHERE first_name = «»
��������:
SELECT COUNT (*) as count FROM pacient WHERE first_name != «»

���� first_name ��� ������ (varchar) � �� ����� ������ ������� ������ ��� ��� ���

������� �� �����.
� ��� �������� ����� ����������� � �� ����������� �����,
� ��� ����� ��������� ���� ������ �� (varcher) � (data)?

��� ����� ��������� ���� ������ �� (varcher) � (data)? � ������ ���� `date` �� ������ �������?

���. ��� �date� ��������������� ����, ������ ���� ��� ����� �������� ����?
��� ��� index.php
�������� ������ ��������

� �������
CREATE TABLE IF NOT EXISTS `patient` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`second_name` VARCHAR(255) NOT NULL,
`last_name` VARCHAR(255) NOT NULL,
`phone` VARCHAR(255) ,
`address` text NOT NULL,
`comment` text NOT NULL,
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

����� �������� ����� �� ���������� ����� �phone� � ����������� ����� �phone�
. �� ����� ������� ������ �� ��������

�� ����� �����:
// �� ��������:
SELECT COUNT (*) as count FROM pacient WHERE phone = «»
// ��������:
SELECT COUNT (*) as count FROM pacient WHERE phone != «»
� ���� ��� � ����������:
SELECT * FROM pacient WHERE date == «2014-03-29 12:30:10»
����-��-�� ��-��-��

������������, ����� ������, ������� ��� �������:
1) people (id, name, age, height) � �������� ������� (������� � ���) � ����
2) cities (id, name) � ������
3) visits (id, person_id, city_id, date) � ���������
person_id � ������� ���� � ������� people
city_id � ������� ���� � ������� cities

������ ����������� � ���������: ����� ��������� �������� ������������ ���������� ���-�� �������.
����� ���������� ������� � ��������� ����� ��������, ���������� ���?
�� ���� ����������� ������������ �����������:
SELECT name, COUNT(person_id) AS count FROM `people`, `visits` GROUP BY person_id ORDER BY count DESC LIMIT 1;
����� �� ��� ������� ��������, �� ��� ������ �������� ���������� (� ���� ������):
(name) ����, (count) 1188
��� �������� ����� ���� ������, ��� ��� � visits ����� 500 �������

�� ���� ������ ���� ���:
SELECT p.name, COUNT(v.person_ >

������������, ���� 2 ������� users � uchet. ��� �������� ����� ����� �� (users) id � (uchet) users_id. ��� ����� ��������� ������ ��� ������ ���������� ������ �� ������� uchet � ������� ���� �bolezn� ����� ����� � ������������� ����� ���� ������ �� ������� users � ������� ���� �������� �����?

����� ������:
SELECT u. AND u. >
���� ��� � ���, ���� ������ ���������� �������� �����.

�� ���� ������ ���� ���:
SELECT p.name, COUNT(v.person_ >

������������, ���� � ���� ���� � ������� ������ �date� ������ DATE �������� ���� ���� � ������
,

� ������ �� ����
$res = mysql_query(�SELECT * FROM `patient` WHERE ` > if($row = mysql_fetch_assoc($res)) <
$content .= �
�.$row[�date�].�
�;
>
echo $content;
?>

���� ���� ��� ��������� ���� ���� 2014-09-01, ��� ����� �� ���� ������� �������������� ���� �� 01-09-2014, ���� ���������� �� �����.

������� 2 �������
CREATE TABLE IF NOT EXISTS `cw_users` (
`userid` int(25) NOT NULL AUTO_INCREMENT,
`first_name` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`last_name` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`email_address` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT »,
`username` varchar(25) CHARACTER SET utf8 NOT NULL DEFAULT »,
`password` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT »,
`info` varchar(50) CHARACTER SET utf8 NOT NULL,
`last_loggedin` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT ‘never’,
`user_level` enum(‘1′,’2′,’3′,’4′,’5’) CHARACTER SET utf8 NOT NULL DEFAULT ‘1’,
`forgot` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`status` enum(‘live’,’suspended’,’pending’) CHARACTER SET utf8 NOT NULL DEFAULT ‘live’,
PRIMARY KEY (`userid`)
)

CREATE TABLE IF NOT EXISTS `reception` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`patient_userid` int(11) NOT NULL,
`doctor_name` text NOT NULL,
`fill_date` date NOT NULL,
`send_place` text NOT NULL,
`cart` text NOT NULL,
`date_re_out_select` text NOT NULL,
`date_in` text NOT NULL,
`recomended` text NOT NULL,
`director_type` text NOT NULL,
`director_name` text NOT NULL,
`date` text NOT NULL,
PRIMARY KEY (`id`)
)

������� `reception` ������� � �������� `cw_users` ������������� �� `patient_userid` � `userid`.
����, �������������������� � ������� cw_users ����� ��������� ��������� � ������� `reception`,
������ ������� ������, ����� ������� ������ ������ ������������������ � ������� `cw_users` � ����� ���� ���� �� ���������� (�����) ����������, ������� ��� �������� � ������� `re�eption`. �� ��� �� ���� ������������ ������, �������� ���������� ���������� ��������.

SELECT userid, first_name, last_name, COUNT(id)
FROM cw_users
JOIN reception ON patient_user > GROUP BY id

���-�� ���. ��� �������� � �������� �����������������. ���� � �� ����, ��� �� ��� ��� � MySQL.

�����. ���� ��������:

SELECT userid, first_name, last_name, COUNT(id) as count
FROM test_cw_users
JOIN test_reception ON patient_user > GROUP BY patient_userid

������� GROUP BY id ����� GROUP BY patient_userid

Mysql_num_rows

Php �������


Php �������


mysql_num_rows

(PHP 3, PHP 4, PHP 5)

mysql_num_rows — ���������� ���������� ����� ���������� �������

��������

int mysql_num_rows ( resource result )

mysql_num_rows() ���������� ���������� ����� ���������� �������. ��� ������� �������� ������ � ��������� SELECT. ����� �������� ���������� �����, ������������ �������� INSERT, UPDATE, DELETE, ����������� ������� mysql_affected_rows().

������ 1. ������ ������������� mysql_num_rows()

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

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

echo » $num_rows Rows\n» ;

���������: ��� ������������� mysql_unbuffered_query() ������� mysql_num_rows() �� ����� ����������� �������� �� ��� ���, ���� ��� ���� �� ����� ��������.

��� �������������, ��� �����, �������� ���������� ������� mysql_numrows(). ������, ������������ � ������ �� �������������.

User Contributed Notes

eriline dot mees at mail dot ee
27-Dec-2005 07:28

If you have a problem using:
$res 1 =mysql_query(«select SQL_CALC_FOUND_ROWS * from minutabel LIMIT 20»);
$res 2 =mysql_query(«select FOUND_ROWS()»);
( $res 2 got always «0»)
then be sure the php.ini config option «mysql.trace_mode» is «Off».

You can use
$vana = ini_set (‘mysql.trace_mode’,’Off’);
// do your $res 1 and $res 2 queries.
ini_set (‘mysql.trace_mode’, $vana );
for temporary disabling.
Jonas
09-Dec-2005 12:55

A small tip concerning SQL_CALC_FOUND_ROWS and FOUND_ROWS()

Remember that you can us «AS» when working with mysql_fetch_assoc.

$sql =»
SELECT
FOUND_ROWS() AS `found_rows`;
«;
$res ult = mysql_query( $sql );
$myrow = mysql_fetch_assoc( $res ult );
$row _count = $myrow [ ‘found_rows’ ] ;

echo $row _count ;
mancini at nextcode dot org
15-Nov-2005 12:24

here is a really fast mysql_num_rows alternative that makes use of the SELECT FOUND_ROWS() MySQL function , it only reads a single row and it is really helpfull if you are counting multiple tables with thousands of rows

function get_rows ( $table ) <
$temp = mysql_query ( «SELECT SQL_CALC_FOUND_ROWS * FROM $table LIMIT 1» );
$res ult = mysql_query ( «SELECT FOUND_ROWS()» );
$total = mysql_fetch_row ( $res ult );
return $total [ 0 ] ;
>
?>

simon_nuttall at hotmail dot com
12-Nov-2005 06:36

Object oriented version of wil1488 at gmail dot com’s comment for counting table rows:

$res ult = $mysqli -> query ( «SELECT COUNT (*) as TOTALFOUND from table» );
$row _array = $res ult -> fetch_array ( MYSQLI_ASSOC );
print ( $row _array [ ‘TOTALFOUND’ ] );
?>

jonbendi @t stud o ntnu o no
07-Nov-2005 05:16

I find that mysql_num_rows() overlook LIMIT clauses.
For instance:

//table has 700 rows
$command = «SELECT * FROM table LIMIT 500»;
$q = mysql_query( $command );
$row s = mysql_num_rows( $q );

// $row s is 700
thismelancholy at ilovebubbles dot net
29-Sep-2005 02:27

I�ve noticed that on some servers one need to put «or die (mysql_error())» when you use mysql_num_rows(), or else it will throw an error. :S
Rancid m+m
30-Jun-2005 06:58

In PHP 5, mysql_affected_rows looks for the link as the first parameter, not a MySQL result.
wil1488 at gmail dot com
01-Jun-2005 06:53

To use SQL COUNT function, without select the source.

//MAKE THE CONNECTION WITH DATABASE

$my_table = mysql_query ( «SELECT COUNT (*) as TOTALFOUND from table» , $link ); //EXECUTE SQL CODE
Note : will return the total on TOTALFOUND

print ( mysql_result ( $my_table , 0 , «TOTALFOUND» )); //use the field camp to get the total from your SQL query!
?>

Thanks, good luck.
jsirovic AT g male dot com
19-May-2005 07:34

The reason it’s just as slow is that to count that way as it is to fetch, minus the data transfer.

Even when executing a limit query, when you ask it to fetch the number of total rows, it must scan the whole table every time to calculate the count.
alex dot feinberg 4t gm41l
29-Apr-2005 02:56

Re dzver at abv dot bg’s note.

I just ran some tests using MySQL Super Smack. Surprisingly, a SELECT * followed by a SELECT COUNT (*) actually was close in speed to a SELECT SQL_CALC_FOUND_ROWS * followed by a SELECT FOUND_ROWS(), but the SQL_CALC_FOUND_ROWS solution was still a bit faster.

Perhaps it varies by table structure? Either way, it might be worth checking which is faster for your application.
liamvictor at gmail dot com
13-Apr-2005 04:22


// this works properly
$q uery = «SELECT first_name FROM users_tbl WHERE user_ >$user_id ‘ AND password = ‘ $p0 ‘ «;
$res ult = mysql_query( $q uery , $connection ) or die

Error — Query failed: «.mysql_error().»

«);
$num_rows = mysql_num_rows( $res ult );
if ( $num_rows ) <
while ( $myrow = mysql_fetch_row( $res ult )) <
$first_name = $myrow [ 0 ] ;
print

Line:».__LINE__.» num_rows: $num_rows first_name: $first_name
$q uery

// Here 1 row is returned with a value of 0 when the password is wrong rather than reporting the password error.
$q uery = «SELECT COUNT (first_name) FROM users_tbl WHERE user_ >$user_id ‘ AND password = ‘ $p0 ‘ «;
$res ult = mysql_query( $q uery , $connection ) or die

Error — Query failed: «.mysql_error().»

«);
$num_rows = mysql_num_rows( $res ult );
if ( $num_rows ) <
while ( $myrow = mysql_fetch_row( $res ult )) <
$count_first_name = $myrow [ 0 ] ;
print

Line:».__LINE__.» num_rows: $num_rows count : $count_first_name
$q uery

«);
>
dzver at abv dot bg
20-Feb-2005 04:00

It is faster to run second query «select count (. ) from . «, than adding SQL_CALC_FOUND_ROWS to your first query, and then using select FOUND_ROWS() + mysql_num_rows().
30-Jan-2005 04:18

In response to oran at trifeed dot com:

You are only experiencing this behaviour because you have not given your FOUND_ROWS() result an alias:

$q ry = mysql_query ( ‘SELECT FOUND_ROWS() AS total’ );
$rst = mysql_fetch_array ( $q ry , MYSQL_ASSOC );
echo $rst [ ‘total’ ] ;

Sean :)
oran at trifeed dot com
15-Dec-2004 08:06

SELECT SQL_CALC_FOUND_ROWS together with
SELECT FOUND_ROWS()

Only worked with the following syntax:
$res ult = @mysql_query( $q uery );
$res ult Total = @mysql_query(«SELECT FOUND_ROWS()»);
$res = mysql_fetch_array( $res ult Total );
echo $res [ ‘FOUND_ROWS()’ ] ;

pjoe444 at yahoo dot com
19-Nov-2004 02:38

Re my last entry:

This seems the best workaround to get an ‘ordinary’ loop going, with possibility of altering output according to row number
(eg laying out a schedule)

$row no =mysql_num_rows( $res ult );

for ( $i =0; $i $res ult ); $i ++) <
$row = mysql_fetch_assoc( $res ult );

«;
> //close loop
pjoe444 at yahoo dot com
19-Nov-2004 01:24

A pity there seems no way of getting the CURRENT row number that’s under iteration in a typical loop,
such as:
while ( $row = mysql_fetch_assoc( $res ult ))

After all there is an array of row arrays, as signified by
mysql_num_rows( $res ult ):

Say this gives «40 rows» : it would be useful to know when the iteration is on row 39.

The nearest seems to be «data seek»:but it connects directly to a
row number eg (from mysql_data_seek page)

for ( $i = mysql_num_rows( $res ult ) — 1; $i >= 0; $i —) <
if (!mysql_data_seek( $res ult , $i )) <
echo «Cannot seek to row $i : » . mysql_error() . «\n»;
continue;
>

= it still wouldn’t solve knowing what row number you’re on in an ordinary loop.

One reason for this situation is the php fetch (fetch-a-single-row) construction, without any reasonable FOR loop possibility with row numbers.

Suggestion:
$Rows [ $i ] possibility where
$i would be the row number

$Rows [ $row [ ] , $row [ ] , $row [ ] . ]
0 1 2 etc

— the excellent retrieval WITHIN a row ( $row [ $i ] ),
while certainly more important, is not matched by
similar possibilities for rows themselves.

and Count ( $res ult ) doesnt work of course, $res ult being a
mere ticket-identifier.

Peter T
They call me .. » Blaqy «
09-Nov-2004 06:30

Just wanted to add my 2 cents in regards to the mysql functions:
SQL_CALC_FOUND_ROWS
SELECT FOUND_ROWS()

It was difficult finding any information on PHP usage.
What wasn’t (or currently isn’t) mentioned is that:

$q uery = «SELECT FOUND_ROWS()»;

Will return a ‘recordset’ .. that holds the ‘number of rows’, not the actual value. So the correct usage is:

$res ult = mysql_query( $q uery );
$total _records = mysql_result( $res ult , 0);

Not:
$total _records = mysql_query( $q uery );

As some of the literature .. may suggest to you.
sam at liddicott dot com
04-Nov-2004 04:40

Some user comments on this page, and some resources including the FAQ at :

suggest using count (*) to count the number of rows

This is not a particularly universal solution, and those who read these comments on this page should also be aware that

select count (*) may not give correct results if you are using «group by» or «having» in your query, as count (*) is an agregate function and resets eachtime a group-by column changes.

select sum(..) . left join .. group by . having .

can be an alternative to sub-selects in mysql 3, and such queries cannot have the select fields replaced by count (*) to give good results, it just doesn’t work.

Sam
aaronp123 att yahoo dott comm
22-Feb-2003 04:40

I may indeed be the only one ever to encounter this — however if you have a myisam table with one row, and you search with val >for a result where you might expect 0 rows, you will not get 0, you will get 1, which is the myisam optimised response when a table has 0 or one rows. Under «5.2.4 How MySQL Optimises WHERE Clauses» it reads:

*Early detection of invalid constant expressions. MySQL quickly detects that some SELECT statements are impossible and returns no rows.

*All constant tables are read first, before any other tables in the query. A constant table is:
1) An empty table or a table with 1 row.
2) A table that is used with a WHERE clause on a UNIQUE index, or a PRIMARY KEY, where all index parts are used with constant expressions and the index parts are defined as NOT NULL.

Hopefully this will keep someone from staying up all night with 1146 errors, unless I am completely mistaken in thinking I have this figured out.
webmaster at _NOSPAM_elite-gaming dot com
11-Oct-2002 06:48

The fastest way to get the number of rows in a table is doing this:

$total = mysql_result(mysql_query(«SELECT COUNT (id) FROM yourtable»),0);

As long as there are no NULL > If you already used yourtable though, it is faster to use mysql_num_rows() on the result of it.
tac at smokescreen dot org
14-Jan-2002 10:58

MySQL 4.0 supports a fabulous new feature that allows you to get the number of rows that would have been returned if the query did not have a LIMIT clause. To use it, you need to add SQL_CALC_FOUND_ROWS to the query, e.g.

$sql = «Select SQL_CALC_FOUND_ROWS * from table where state=’CA’ limit 50»;
$res ult = mysql_query( $sql );

$sql = «Select FOUND_ROWS()»;
$count_result = mysql_query( $sql );

You now have the total number of rows in table that match the criteria. This is great for knowing the total number of records when browsing through a list.
philip at cornado dot c()m
06-May-2001 10:37

Regarding SQL count (), see this faq :
*
Note: If you already have a $res ult , use mysql_num_rows() on it otherwise use SQL count (). Don’t SELECT data just for a count.

��� ���������� ���������� �����, ������������ �������� mysql?

��� ���������� ���������� �����, ������������ �������� mysql? ��������� PHP ..

��������� �������� ����� � ���������� ������� �

�� ������ ������ ��������� ��������� � ��������� ��. �� �� ��������, ����� ���� ��� ���������� ���������� �� �����������, �� API ������������� ������� mysql_num_rows, ������� ����� ���������� ��� ���������� ����� � ����������.

��� ������������ � PHP, ��������, ��� ������� mysqli_num_rows . ��������� �� ��������������� ������, ����� ���������, ��� ����������� PHP, ��� ������� ������ � �������������� ������� mysqli:

��������� ���������� �����, ��������������� ��������� ��������� �

������ ����������� COUNT (*) � ��. ������� ����� � ����������� MySQL. ��������:

�������� ������ ������, ����� ������������ LIMIT �

���� �� ������������ ����������� LIMIT, �� ������ �����, ������� ����� �� �������� ��� ����, ����������� SQL_CALC_FOUND_ROWS � ����� �������, � ����� SELECT FOUND_ROWS ();

��� ����� ������� ������ ��� �� ����� �������� �����������, � ��� ����� ��������� ����� ������� ������, ����� �������� ���� � ���������� ��� ����� �������� ����� ��������, ����� �������� �������� ������.

� ������, ���� ��� ����� ������ �������� � ������� �������� SQL, �� ������ ������������ ���������.

���� ��� SQL-������ ����� ����������� LIMIT , � �� ������ ������, ������� SQL_CALC_FOUND_ROWS ������ � ���� ������ ������ �� ������ ������������ SQL_CALC_FOUND_ROWS � ����� SELECT FOUND_ROWS(); ��� ���������� ���������� ����� A LOT ����� ����������, ��������� COUNT(*)
������ (����� �� ���������� MySQL):

���� �� ������, ����� ��������� � ����� ������������ ����� ������ ���-�� ����� �����. ������������� PHP.

�����������, ��� �� ����������� ������� mysql_ ��� mysqli_, �� ��� ������ ��� ������ ���� �������� ������.

������, ���� �� ����������� PDO, ��� ������� ������� ��� �������� ���������� �����, ���������� ��� ������ ��������� select, � ���������. �� ������ ������������ count () � ������ ����������� (������ �������� ��������� ����������).

���, ���� ��� ���������� ������ �����, � �� ������, PDOStatement :: fetchColumn () �� ��������� SELECT COUNT (1) �.

FOUND_ROWS() ���������� �������� ����� ����� �������.

���� �� ���������� ������ � ������� WordPress, �� ������ �������� ������ � ���������� �����, ������������ � ������� $ wpdb-> num_rows:

���� ��� ����� ������������ ����, ���������� �� ������� �� ������� mysql, �� ��������� ���������:

���� �� ���������� ���������� ��� ���������, �� ���������� �����, ����������, ������������ ��������������� �� ������ �������:

��� ����� ��������� � $ wpdb-> update � $ wpdb-> delete.

��������� ��� 2015 ���, � ���������� ���������������� mysql_* , ��� PDO � ������ ������������.

����� ������������

��� ���� ���������� � ������� ����� 2 ��� ����� echos ����. ���� ������������� ���� ��������� � ����������, ������� �� ���� ���������� �������� rowCount, � ���� ���, ������ ��������� ��������.

�� ����������� �� PDOStatement :: rowCount :

PDOStatement :: rowCount () ���������� ���������� �����, �� ������� ������ ���������� DELETE, INSERT ��� UPDATE.

For most databases PDOStatement :: rowCount () �� ���������� ���������� �����, �� ������� ������ ���������� SELECT. ������ ����� ����������� PDO :: query () ��� ������ ��������� SELECT COUNT (*) � ���� �� �����������, ��� � ��� ����������� �������� SELECT, � ����� ����������� PDOStatement :: fetchColumn (), ����� �������� ���������� �����, ������� ����� ����������. ����� ���� ���������� ����� ��������� ���������� ��������.

Mysql_num_rows — ���������� ���������� ����� ���������� �������

mysql_num_rows — �������� ���������� ����� � ����������.

��������

int mysql_num_rows (resource result)

mysql_num_rows() ���������� ���������� ����� � �������������� ������. ��� ������� ����� ������ ��� ���������� SELECT. ��� ������������ ���������� �����, ��������������� � �������� INSERT, UPDATE ��� DELETE, ����������� mysql_affected_rows() .

������ 1. mysql_num_rows()

����������: ���� �� ����������� mysql_unbuffered_query() , mysql_num_rows() �� ���������� ���������� ��������, ���� �� ����� ��������� ��� ���� ��������������� ������.

��� �������� ������������� ����� ����� ������������ mysql_numrows() , �� ��� �� �������������.

Илон Маск рекомендует:  Отправка электронной почты
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL