2014-01-08 1 views
0

У меня есть таблица счетов в моей базе данных, одним из полей которой является дата создания.отображение результатов запроса в таблице счетов-фактур месяц за месяцем, год за годом

Пользователи могут вводить диапазон дат, и запрос будет получать результаты между указанным диапазоном. Затем я хочу просмотреть результаты и отобразить их так, чтобы все результаты, например, jan 2013, были объединены в таблицу (pref с итоговыми значениями для этой таблицы), счета-фактуры 2013 года находятся в таблице вместе и так далее лет, если потребуется.

Мне никогда не приходилось делать что-то подобное раньше, и я пытаюсь найти лучший способ сделать это.

Неужели кому-то приходилось иметь дело с этим раньше, и если да, то какой был лучший способ сделать это?

+1

Вы можете разместить код у вас есть сейчас ? – DaImTo

+1

Пожалуйста, покажите нам свою структуру таблицы и результат, который вы хотели бы иметь. Сейчас это пугает. –

ответ

0

Обновленный ответ, так как вы можете не знать первую часть ... сделать сложную часть непосредственно в вас SQL, а не какой-то массивный php-цикл. Выберите, что вы хотите, чтобы отобразить и завершить запрос с:

WHERE invoice_date BETWEEN '$start_date' AND '$end_date' GROUP BY YEAR(invoice_date), MONTH(invoice_date) 

Вы можете пройти 2 PHP переменные через PHP из формы ваши пользователи используют, чтобы ввести диапазон дат. Убедитесь, что вы цитируете их, если вы используете формат DATETIME и, например, получаете его через datepicker. Тогда это должен быть кусок пирога, чтобы идти оттуда с помощью php и отображать его так, как вы хотите ...

0

Я сделал то же самое в моем проекте рельсов.

первый вы запрашиваете «группу по invoice_year invoice_month» записывает

тогда я построил хэш (или любой другой структуры данных, вы предпочитаете) и добавить данные, соответствующие этому год и месяц. Затем использовать это, чтобы создать свой стол

Пример: диапазон январь-2013 по сегодняшний день

invoice_data = { '2013' => {=> {некоторые данные 'Ян'}, 'фев' => { некоторые данные} ...}, '2014' => {'jan' {some data}}}

Вы должны отформатировать данные запроса и построить такую ​​структуру данных.

Посмотрите на метод извлечения в sql.

0

Вы должны взглянуть на заявление SQL GROUP BY (http://www.w3schools.com/sql/sql_groupby.asp).

Если у вас есть итоги счетов-фактур в поле под названием invoice_total и дата выставления счета в поле под названием invoice_date следующего заявления SQL может быть использована:

SELECT sum(invoice_total), year, month 
FROM invoices 
GROUP BY YEAR(invoice_date) as year, MONTH(invoice_date) as month 
Смежные вопросы