Количество возвращаемых строк из SQL-запроса

Форум для авторов модов для phpBB 3.0.x. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Chiliec
phpBB 1.2.0
Сообщения: 10
Стаж: 16 лет 3 месяца
Откуда: Пермь
Благодарил (а): 4 раза

Количество возвращаемых строк из SQL-запроса

Сообщение Chiliec »

Плохо разбираюсь в SQL запросах. Есть такой запрос:

Код: Выделить всё

$sql = 'SELECT p.post_id, t.topic_id, t.topic_title, t.topic_replies, t.forum_id, p.post_subject, p.post_text, p.post_time, p.bbcode_bitfield, p.bbcode_uid, u.username, u.user_id, u.user_colour
			FROM ' . TOPICS_TABLE . ' t 
				INNER JOIN ' . POSTS_TABLE . ' p ON (t.topic_id = p.topic_id)
					INNER JOIN ' . USERS_TABLE . ' u ON (p.poster_id = u.user_id)
						WHERE t.topic_approved = 1
							AND p.post_approved = 1
							AND ' . $db->sql_in_set('p.forum_id', $forum_id_ary) . '
							AND p.post_id = t.topic_first_post_id
						ORDER BY p.post_time ASC'; 
Хочу получить от него количество возвращаемых строк. Подскажите пожалуйста как это сделать :roll:
NiGHt-LEshiY
phpBB 1.2.1
Сообщения: 24
Стаж: 15 лет 1 месяц
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Количество возвращаемых строк из SQL-запроса

Сообщение NiGHt-LEshiY »

Если используется база данных mysqli, то подойдёт $db->sql_affectedrows().
Если использование phpBB DBAL необязательно, тогда подойдут mysql_num_rows, mysqli_num_rows.
Также можно попробовать SELECT COUNT() или уже после выполнения запроса и извлечения строк сделать:
$count = sizeof($row);
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17272
Стаж: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2412 раз

Re: Количество возвращаемых строк из SQL-запроса

Сообщение rxu »

Как-то так.

Код: Выделить всё

$result = $db->sql_query($sql);
$result_array = $db->sql_fetchrowset($result);
$db->sql_freeresult($result);

$num_rows = sizeof($result_array); 
Изображение

Вернуться в «Для авторов (phpBB 3.0.x)»