Arhn - архитектура программирования

PHP/CakePHP — Создание списка значений из базы данных

Я создал массив:

$alphabet = range('A', 'Z');

Который создал список всех букв алфавита. Затем я использовал цикл for, чтобы распечатать все буквы алфавита:

<ul>

<? for ($i = 0; $i < 26; $i++): ?>

    <li><span class="head-menu"><?= $alphabet[$i]; ?></span>

        <ul>

            <li><a href="#">Some Item</a></li>

            <li><a href="#">Some Item</a></li>

        </ul>

    </li>   

<? endfor ?>                

</ul>

В этом коде я хочу заменить:

<li><a href="#">Some Item</a></li>

Со списком значений из базы данных, где первая буква значения в столбце имени в базе данных совпадает с буквой $alphabet[i].

Так, например, если у меня есть база данных под названием «еда» только с полем «имя», мне нужен вывод как таковой:

A
    Apple
B
    Banana
C
    Carrots
    Crackers

Где Apple, Banana, Carrots и Crackers являются значениями в базе данных.

Как я могу это сделать?


Ответы:


1
$alphabet = range('A', 'Z');
$r = mysql_query("SELECT name FROM food");
if ($r) {
    while($row = mysql_fetch_row($r)) {
        $alphabet[$row[0][0]][] = $row[0];
    }
}

Для торта

$alphabet = range('A', 'Z');
$food = $this->Food->find('list');
foreach ($food as $v)
    $alphabet[$v[0]][] = $v;
15.11.2013

2

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

$sql = 'SELECT field FROM table ORDER BY field';
$res = $mysqli->query($sql);
$data = [];
$current = NULL;
while($row = $res->fetch_assoc()) {
    if($row['field']{0} != $current) {
        $current = $row['field']{0};
        $data[$current] = [];
    }
    $data[$current][] = $row['field'];
}

Итак, теперь у вас есть массив, который выглядит так

Array( 
    'A' => Array('Apples'),
    'B' => Array('Bananas', 'Blueberries')
    etc
}

Затем вы просто повторяете свой код

<ul>
<?php for ($i = 0; $i < 26; $i++): ?>
    <li><span class="head-menu"><?= $alphabet[$i]; ?></span>
        <ul>
            <?php foreach($data[$alphabet[$i]] as $fruit): ?>
                <li><a href="#"><?php echo $fruit ?></a></li>
            <?php endforeach ?>
        </ul>
    </li>   
<? endfor ?>                
</ul>
15.11.2013
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..