Результаты PHP SQL Loop на основе поля - PullRequest
0 голосов
/ 29 марта 2012

Я создаю динамический набор записей, в котором я заполняю пару значений в запросе, используемом для выбора всех записей с чернилами.

Далее мне нужен цикл и группировать результаты, но я не уверен, как группировать по значениям, используемым взапрос.

Справочный запрос:

SELECT fldItem, fldDescription, fldRank,fldType FROM tableName
WHERE fldType IN (33, 34, 36) ORDER BY fldRank

Значения 33,34 и 36 будут динамически передаваться в запрос.Моя цель состоит в том, чтобы затем иметь область цикла / повторения, которая позволяет отображать в группах все результаты с одинаковым fldType

Результаты должны выглядеть следующим образом:

item1, description1, rank1, type33
item2, description2, rank2, type33
item3, description3, rank5, type33
item4, description4, rank6, type33
item5, description5, rank8, type33

--------

item6, descriptionv, rank1, type34
item7, descriptionw, rank2, type34
item8, descriptionx, rank3, type34
item9, descriptiony, rank4, type34
item10, descriptionz, rank5, type34

--------

item11, descriptionA, rank2, type36
item12, descriptionB, rank3, type36

с использованием do /цикл while отображает все элементы для отображения, но не с какой-либо группировкой.Является ли цикл ForEach решением?

Ответы [ 2 ]

3 голосов
/ 29 марта 2012

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

$last_type = null;
foreach ($records as $record) {
    if ($last_type !== null && $last_type != $record->fldType) {
        echo '<whatever your visual cue is>';
        $last_type = $record->fldType;
    }
}

Также убедитесь, что вы делаете:

ORDER BY fldType, fldRank
1 голос
/ 29 марта 2012
SELECT fldItem, fldDescription, fldRank,fldType FROM tableName
WHERE fldType IN (33, 34, 36) ORDER BY fldType, fldRank

Сначала будет сгруппирован по типу fldType, а затем по fldRank.В своем коде PHP просто запомните последний тип fldType и добавляйте новую группу всякий раз, когда она изменяется.Все типы fldTyps теперь будут сгруппированы, так что вы можете просто просмотреть результаты по порядку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...