我在mysql中有下表: -
编号 | 乐队名 1 | 一个完美的圆圈 2 | 航空史密斯 3 | bb王 4 | 猫史蒂文斯
我在一个查询中获取所有结果:-
$result = mysql_query("SELECT id, bandname FROM bands ORDER BY bandname ASC");
在我的页面上,我有 AZ 锚链接,它会打开一个新标签:-
<ul class="tabs-nav">
<li class="active"><a href="#0">0-9</a></li>
<?php
// Print a-z link
for ($i=97; $i<=122; $i++) {
$curletter = chr($i);
echo '<li><a href="#'.$curletter.'" title="Band names beginning with letter '.$curletter.'" class="uppercase">'.$curletter.'</a></li>';
}
?>
</ul>
我无法在他们的标签下列出乐队。目前我的代码是: -
<div class="tabs-container">
<?php
// Print a-z tabs
for ($i=97; $i<=122; $i++) {
$curletter = chr($i);
?>
<div class="tab-content" id="<?php echo $curletter; ?>">
<?php
while($bands = mysql_fetch_array( $result )) {
$bandname = $bands['bandname'];
$bandid = $bands['id'];
$bandletter = strtolower(substr($bandname , 0 , 1));
}
if($curletter==$bandletter) {
echo '<a href="'.$bandid.'/" title="'.$bandname.'>'.$bandname.'</a>';
}
?>
</div>
<?php } ?>
</div>
我知道这是不正确的,因为我在 for 循环中调用了 while 循环,这对我来说似乎不正确——因为 AZ 选项卡创建过程的每次迭代都必须通过 while 循环。
如果我要处理 5,000 个乐队,那么最好的方法是什么?一个 sql 结果循环多次,每个波段的一个结果然后保存在一个字母数组中,或者每当用户单击其中一个锚链接时,一个 ajax sql 查询?
这些甚至都没有开始处理 0-9 选项卡,我认为考虑到我当前的代码,这本身就是一个问题。任何指针真的将不胜感激。
我已经搜索了答案,但没有找到与我的问题类似的东西:)