gpt4 book ai didi

PHP/CakePHP - 从数据库创建值列表

转载 作者:行者123 更新时间:2023-11-29 08:18:50 25 4
gpt4 key购买 nike

我创建了一个数组:

$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] 相同。

例如,如果我有一个名为“food”的数据库,其中只有一个“name”字段,我想要这样的输出:

A
Apple
B
Banana
C
Carrots
Crackers

其中 Apple、Banana、Carrots 和 Crackers 是数据库中的值。

我怎样才能做到这一点?

最佳答案

我要做的是将数据库读入数组并以这种方式填充

$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>

关于PHP/CakePHP - 从数据库创建值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19992488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com