Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Подсчитать и вытащить поля.


Автор: Predator199 29.11.2012, 15:54
Вообщем пытаюсь сделать вывод записей из бд и подсчитать их количество, через 1 запрос. Как не пробовал подсчитать, не получается вывести все записи. Можно ли это сделать через 1 запрос?

Автор: Guedda 29.11.2012, 16:02
Код

SELECT COUNT(table_name.*) AS cnt, table_name.* FROM `table_name` WHERE `cell_1` = "1";

Автор: baldina 29.11.2012, 16:05
Код

select count(*), field1, ... fieldN from table

?

Автор: Predator199 29.11.2012, 17:05
baldina Я так пробовал, количество подсчитает и выведет содержание полей 1 записи. Я пытаюсь получить массив с записями где будит еще подсчет строк.
Ничего не пойму, можно ли сделать постраничную навигацию и вывести контент через 1 запрос. Такое возможно?

Автор: skyboy 29.11.2012, 17:14
Predator199, "сделать постраничную навигацию" и "вывести все записи" слабо стыкуется.
что ж это за страничная навигация, когда все записи выведены на одной-единственной странице?

Автор: baldina 29.11.2012, 17:15
для постраничного вывода неплохо заранее знать число строк - это запрос select count(*)
для данных каждой страницы - отдельный запрос с limit

Автор: Predator199 29.11.2012, 17:20
Немного не то имел. У меня все работает через 2 запроса. Я просто хочу сделать через 1. Мне нужно из одной таблицы достать все данные и в тоже время подсч... А понял, так не возможно сделать, сортировка и лимит. Не стыкуется,  придется 2 пользоваться. Спс.

Автор: baldina 29.11.2012, 17:23
Можно и одним запросом, но плохо: тогда придется при каждом запросе тащить все записи и уже на php анализировать и выбирать.
Двумя лучше

Автор: Guedda 30.11.2012, 06:52
По твоим последним вопросам и темам мне кажется, что ты яро пытаешься оптимизировать свой код. Но задаешь вопросы неправильно, и, в конце концов, ты не оптимизируешь, а пессимизируешь его.
Допустим, в данном вопросе, 2 запроса отработают быстрее, чем один запрос с кучей непонятностей.

Автор: baldina 30.11.2012, 09:34
поддерживаю

Predator199, если это действительно попытка оптимизации, то она http://alenacpp.blogspot.ru/2006/08/blog-post.html
Если это попытка улучшить проектное решение, то она неудачна, т.к. нарушает принцип "одна задача - одна функция". Т.е. вы неправильно провели декомпозицию своей задачи: здесь две подзадачи - получить число записей и получить записи для отображения.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)