1. dcweb - 14 Октября, 2013 - 08:45:43 - перейти к сообщению
Есть некая таблица загрузок, в которой есть много полей и идентификатор user_id. Нужно выводить на каждой странице кол-во этих полей для юзера. Если каждый раз выполнять cout по таблице мне кажется будет большая нагрузка. Может стоит добавить в таблицу users столбец count и при записи в downloads плюсовать его?
2. caballero - 14 Октября, 2013 - 09:42:57 - перейти к сообщению
count показывает количество записей а не полей
а по индексному полю высчитывается мгновенно
а по индексному полю высчитывается мгновенно
3. MAXUS - 14 Октября, 2013 - 09:45:49 - перейти к сообщению
Если нужно подсчитать количество полей, то можно сделать так:
Имеем $result - результат MYSQL-запроса.
Имеем $result - результат MYSQL-запроса.
Тогда подсчет полей произойдет только при первом проходе. Дальше переменная $number_of_fields уже будет заполнена и по условию подсчет производится не будет.
(Добавление)
dcweb пишет:
Есть некая таблица загрузок, в которой есть много полей и идентификатор user_id. Нужно выводить на каждой странице кол-во этих полей для юзера. Если каждый раз выполнять cout по таблице мне кажется будет большая нагрузка. Может стоит добавить в таблицу users столбец count и при записи в downloads плюсовать его?
Но, вообще, есть две функции:
mysql_num_rows - возвращает количество строк, вошедших в последний SELECT-запрос. http://www.php.su/functions/?mysql-num-rows
mysql_num_fields - возвращает количество полей, вошедших в последний запрос. http://www.php.su/functions/?mysql-num-fields
А создавать в таблице дополнительное поле для подсчета строк - это, действительно, не рационально. Во-первых, при выборке не полной таблицы, а ее части твое поле с количеством строк будет бесполезно. Во-вторых, замучаешься отслеживать корректность информации в этих полях, потому что при удалении строки из таблицы, надо будет все пересчитывать и перезаполнять.