Быстрый вопрос, который, как мне кажется, имеет очень простое решение для тех, у кого есть что-то, превосходящее самые элементарные знания PHP / MySQL, как у меня.
У меня есть список городов в различных штатах, который хранится в базе данных с указанием города, штата и некоторых других переменных. Прямо сейчас их тянет как список, отсортированный по названию города:
- Анкоридж, АК
- Балтимор, MD
- Чикаго, Иллинойс
и т. д.
Я хочу иметь возможность сначала группировать по штатам, а затем перечислять все города, которые имеют значение этого штата. Так это будет выглядеть так:
AK
CA
- Лос-Анджелес
- Сан-Диего
- Сан-Франциско
- и т. Д.
Я знаю, что мне нужно что-то вроде foreach, и я искал в Интернете, но не нашел примера, по которому можно было бы приступить к работе.
Вот что мне нужно, чтобы вытащить основной список:
$list = mysql_query("SELECT id, alphaname, state FROM regional ORDER BY alphaname",$db);
while ($thearray = mysql_fetch_array($list)) {
echo "<li><a href='info.html?id=$thearray[id]'>$thearray[alphaname], $thearray[state]</a></li>";
}
Единственный реальный способ, которым я знаю, как это сделать, - это выполнить запрос для каждого состояния, что было бы больно и совершенно глупо ...
Спасибо за любую помощь!
Обновление - решено. Я придерживался подхода Рокаколы, хотя я тоже работал.