Как получить разделение на категории?

215
08 сентября 2018, 17:00

В базе есть записи с валютами, и у каждой валюты своя категория. Валюта и категория в одной таблице.

Структура:

где - code и есть категория.

В таблице записи в таком виде

Вывожу все так:

$sql = mysql_query("SELECT * FROM `valuta` ORDER BY `id` ASC");
while ($item= mysql_fetch_assoc($sql)) {
   ?>
     <option><?=$item['name'];?></option>
   <?
}

Хочу получить вот такую разметку:

<optgroup label="RUB">
 //option
</optgroup>
<optgroup label="USD">
 //option
</optgroup>
<optgroup label="BTC">
 //option
</optgroup>

Буду благодарен за помощь.

Answer 1

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

$myArray = [];
while ($item= mysql_fetch_assoc($sql)) {
   $myArray[$item['code']][] = $item;
}
foreach ($myArray as &key => $value): ?>
<optgroup label="<?= $key; ?>">
    <? foreach($value as $v): ?>
        <option value="<?= $v['name']; ?>">
            <?= $v['name']; ?>
        </option>
    <? endforeach; ?>
</optgroup>
<? endforeach; 
READ ALSO
Yii2. Trying to get property &#39;username&#39; of non-object

Yii2. Trying to get property 'username' of non-object

Всем приветПрохожу обучение по Yii2 по книге от Bill Keck Yii2 for beginners

273
Как в blade в одну таблицу вывести 3 массива?

Как в blade в одну таблицу вывести 3 массива?

Но если выводить так записи в таблице дублируются, как этого избежать?

224
PHP: POST запрос не получает ответа от Paypal

PHP: POST запрос не получает ответа от Paypal

У меня есть код, который выполняет POST запрос и успешно получает ответ от песочницы Paypal

247
Рефакторинг кода и исправление багов. PHP

Рефакторинг кода и исправление багов. PHP

Необходимо провести рефакторинг, исправить баги, указать уязвимиости и продокументировать в стиле PHPDoc

233