Как сгруппировать строки в MySQL по типу? - PullRequest
0 голосов
/ 08 февраля 2012

=) Я просто обеспокоен этой проблемой .. как сгруппировать строки в MySQL по типу, вот мой пример ввода и вывода для этого .. давайте просто скажем, что у меня есть это в моей базе данных

|Name | address |  type | 
a1    add1      t_spot
c2    add2      t_acc
e3    add3      t_res
b1    add1      t_spot
d2    add2      t_acc
f3    add3      t_res

и я хочу сгруппировать его по типу и поместить в поле выбора с помощью php давайте просто предположим, что это будет ожидаемый код

<select name='all'>
<optgroup label="t_spot">
<option value=''>a1</option>
<option value=''>b1</option>
</optgroup>

<optgroup label="t_acc">
<option value=''>c1</option>
<option value=''>d1</option>
</optgroup>

<optgroup label="t_res">
<option value=''>e1</option>
<option value=''>f1</option>
</optgroup>
</select>

, пожалуйста, помогите .. спасибо, это будет оценено.

Ответы [ 2 ]

1 голос
/ 08 февраля 2012

В вашем запросе ORDER BY type.

Затем, читая данные, следите за текущим типом, и когда вы видите изменение, которое вам известно, чтобы закончить текущий блок и начать следующий.Псевдокод:

select * from table order by type
cur_type=''
while(more rows)
    if (type != cur_type)
        if (cur_type != '')
            terminate optgroup block
        start new optgroup block
    write option
if (cur_type != '')
    terminate optgroup block
0 голосов
/ 08 февраля 2012

Вам либо нужно выполнить несколько запросов с предложением where на основе типа:

select * from table where type = 't_spot'
select * from table where type = 't_acc'
...

Или вам нужно запросить все строки и разделить их по типу в коде на основе типа.Просмотрите результаты и поместите их в отдельные списки, используемые для заполнения вашего HTML.ORDER BY, вероятно, будет здесь полезен, чтобы вы могли отслеживать, когда тип меняется, пока вы просматриваете результаты.

...