[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как правильно определить число строк в таблице, у
_tvlad
Из двух способов хочется выбрать оптимальный по затратам времени и памяти:
1.
	$res = mysql_query("SELECT * FROM `picture` WHERE `author` = " . $id);
$cnt = mysql_num_rows($res);

2.
	$res = mysql_query("SELECT COUNT(*) FROM `picture` WHERE `author` = " . $id);
$row = mysql_fetch_array($res);
$cnt = $row[0];

В первом варианте мне не нравится выборка всех строк, которые мне не нужны (мне нужно только их количество).
Во втором - не понятно превращение результата в массив: а что будет находиться в $row[1] и т.д.?
Kuliev
Цитата (_tvlad @ 5.02.2013 - 20:31)
Из двух способов хочется выбрать оптимальный по затратам времени и памяти:
1.
	$res = mysql_query("SELECT * FROM `picture` WHERE `author` = " . $id);
$cnt = mysql_num_rows($res);

2.
	$res = mysql_query("SELECT COUNT(*) FROM `picture` WHERE `author` = " . $id);
$row = mysql_fetch_array($res);
$cnt = $row[0];

В первом варианте мне не нравится выборка всех строк, которые мне не нужны (мне нужно только их количество).
Во втором - не понятно превращение результата в массив: а что будет находиться в $row[1] и т.д.?

При таком запросе у Вас будет одна ячейка в которой будет сумма строк.


//Создаем запрос к БД
$sql = 'SELECT COUNT(*) FROM `picture` WHERE `author` = '. (int)$id;

//Отправляем запрос на сервер СУБД
$res = mysql_query($sql) or die(mysql_error() .'<br>'. $sql);

//выводим результат
echo mysql_result($res, 0);
sergeiss
Цитата (_tvlad @ 5.02.2013 - 20:31)
Из двух способов хочется выбрать оптимальный по затратам времени и памяти

Есть еще третий вариант - сделать триггеры вставки и удаления. В отдельной таблице завести отдельное поле в одной строке, где писать количество строк. Добавил - увеличил счетчик. Удалил - уменьшил счетчик. И у тебя там всегда будут актуальные данные. И выбирать их будет легко, просто, быстро.

Kuliev - привет! smile.gif Чегой-то редко тебя вижу на форуме. Или я просто редко захожу?


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
_tvlad
Спасибо за ответы. Вариант со счетчиками мне понравился, попробую реализовать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.