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
Форумы портала PHP.SU :: Версия для печати :: Подстчет количества строк в запросе SELECT
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Подстчет количества строк в запросе SELECT

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

1. UNTRUSTED - 14 Марта, 2012 - 05:56:23 - перейти к сообщению
Долго уже мучает вопрос каким образом лучше подсчитывать количество строк в запросе!!
Есть несколько вариантов, подскажите какой лучше?? Сортирую по моему мнению в порядке улучшения запроса!!!
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //1 вариант
  4. $col = mysql_query("SELECT id FROM users");
  5. echo mysql_num_rows($col);
  6. //2 вариант
  7. $col = mysql_query("SELECT COUNT(id) FROM users");
  8. /*2.1*/
  9. echo mysql_result($col,0);
  10. /*2.2*/
  11. $a mysql_fetch_array($col,MYSQL_NUM);
  12. echo $a[0];
  13. /*2.3*/
  14. $b = mysql_fetch_row($col);
  15. echo $b[0];
  16. ?>
  17.  

Ну вот вообщем вроде все!! Как думаете, какой лучше использовать?? Или есть другие варианты???
Еще вот на такой вариант наткнулся!!!
PHP:
скопировать код в буфер обмена
  1.  
  2. //в базе 15 юзеров
  3. mysql_query("SELECT SQL_CALC_FOUND_ROWS id FROM users LIMIT 1");
  4. echo(mysql_result(mysql_query("SELECT FOUND_ROWS()"),0)); //выводит правильный результат = 15!
  5.  
2. EuGen - 14 Марта, 2012 - 08:07:24 - перейти к сообщению
SELECT COUNT(1) FROM users
(в ряде случаев оно эквивалентно SELECT COUNT(*))
3. UNTRUSTED - 14 Марта, 2012 - 08:09:20 - перейти к сообщению
А в таком случае все-таки каким лучше пользоваться?? 2.1 || 2.2 || 2.3 ?? И что про 3й вариант скажете??
4. EuGen - 14 Марта, 2012 - 08:11:46 - перейти к сообщению
Я написал Вам оптимальный вариант. Для оценки всех вариантов Вы можете использовать EXPLAIN
5. UNTRUSTED - 14 Марта, 2012 - 08:14:11 - перейти к сообщению
запрос то понятно!! Я же теперь про вывод данных из этого запроса спросил!!
6. snikers987 - 14 Марта, 2012 - 08:34:24 - перейти к сообщению
UNTRUSTED советую вообще забыть, что есть такая функция как mysql_result().
7. UNTRUSTED - 14 Марта, 2012 - 09:04:19 - перейти к сообщению
ну да!! Я слышал что она тормознутая и много проблем с нейУлыбка Плюс у ней единственный что код можно сократить хорошо!!

 

Powered by ExBB FM 1.0 RC1