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]   

> Описание: Вопрос
kazmikro
Отправлено: 09 Марта, 2011 - 11:56:42
Post Id



Гость


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


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




Помогите
Допустим у меня в базе данных с музыкой 10 записей - 10 треков )

как зделать чтоб файлик.php сам считал сколько записей в таблице music и выводил 10 ! ?
 
 Top
McLotos
Отправлено: 09 Марта, 2011 - 12:09:29
Post Id



Гость


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


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




Ну если под "таблицей" понимается MySQL, то можно попробовать сделать через Агрегатные функции http://google[dot]ru/search?hl=de&am[dot][dot][dot]amp;aql=&oq=

(Отредактировано автором: 09 Марта, 2011 - 12:09:51)



-----
ЯГотовПоверить,ЧтоБываютСлучаи,КогдаУдалениеЗубовАвтогеномЧерезЗаднийПроходЯвляетсяРациональным.
 
 Top
koka
Отправлено: 09 Марта, 2011 - 14:36:50
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




kazmikro пишет:
Помогите
Допустим у меня в базе данных с музыкой 10 записей - 10 треков )

как зделать чтоб файлик.php сам считал сколько записей в таблице music и выводил 10 ! ?



ну, если вам нужно, чтобы файлик.php сам считал сколько записей в таблице, делаете запрос типа
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM table", $link);
используете функцию
в $num_rows будет количество записей в таблице.


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
Stierus Супермодератор
Отправлено: 09 Марта, 2011 - 16:39:21
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


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




koka, ты дал самый безумный вариант подсчета количества записей в бд из всех возможных, почитай про count в mysql
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(*) FROM TABLE
 
My status
 Top
koka
Отправлено: 09 Марта, 2011 - 23:02:46
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




Stierus пишет:
koka, ты дал самый безумный вариант подсчета количества записей в бд из всех возможных, почитай про count в mysql
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(*) FROM TABLE


А разве использовать mysql_num_rows так плохо ??? Если надо получить данные из БД и их количество, тогда прийдётся произвести два запроса к БД, разве это оптимально???


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
Haos616
Отправлено: 10 Марта, 2011 - 00:46:39
Post Id



Новичок


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


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




koka пишет:
Stierus пишет:
koka, ты дал самый безумный вариант подсчета количества записей в бд из всех возможных, почитай про count в mysql
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT count(*) FROM TABLE


А разве использовать mysql_num_rows так плохо ??? Если надо получить данные из БД и их количество, тогда прийдётся произвести два запроса к БД, разве это оптимально???


Попробуй проверить разницу времени исполнения и поймешь.
И в первом 2 операции и бессмысленный выбор всех записей.
А во втором просто подсчитывается количество.
Короче count быстрее.

(Отредактировано автором: 10 Марта, 2011 - 00:48:04)

 
 Top
OrmaJever Модератор
Отправлено: 10 Марта, 2011 - 01:16:05
Post Id



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


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


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




Если нужно не только посчитать но и выбрать даные mysql_num_rows() лутше чем count(*).


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
koka
Отправлено: 10 Марта, 2011 - 05:45:44
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Июнь 2010  
Откуда: Россия, Ижевск


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




OrmaJever, спасибо, разобрался.


-----
http://rulevoi[dot]net - запчасти для иномарок в Ижевске
 
 Top
kazmikro
Отправлено: 10 Марта, 2011 - 10:50:10
Post Id



Гость


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


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




Мда мене короче больше всего подходит count !) Спс всем всё равно !
 
 Top
EuGen Администратор
Отправлено: 10 Марта, 2011 - 11:06:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Чем лучше? Если в таблице ~ 100 млн строк, строки эти содержат данные с длинными текстовыми полями, бинарными данными и таких полей 8-10, то думаю нетрудно оценить, каких затрат стоит такая выборка (имею ввиду SELECT * ...). Хотя справедливости ради, стоит отметить, что и SELECT COUNT(*) ... без дополнительных условий (и, конечно же, индексов по таким условиям) будет выполняться тоже не быстро.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
JustUserR
Отправлено: 10 Марта, 2011 - 15:03:44
Post Id



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


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


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




EuGen пишет:
Хотя справедливости ради, стоит отметить, что и SELECT COUNT(*) ... без дополнительных условий (и, конечно же, индексов по таким условиям) будет выполняться тоже не быстро.
В действительности осуществление оценк быстродействия предполагаемых SQL-запросов включает ряд зависимых факторов, таких как уровень индексации целевых информационных полей и сохранение дополнительных параметров описания структуры таблицы; в частости при осуществлении предшествющей установки локального элемента триггера для записи и удаления информационных полей из таблицы, получение соответственного числа будет осуществляться за константное минимальное время


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB