排序Mysql的結果我已經在MySQL下表: -PHP - 循環AZ使用動態鏈接
id | bandname 1 | a perfect circle 2 | aerosmith 3 | b.b king 4 | cat stevens
我獲取所有的結果在一個查詢中使用: -
$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>
我知道這是不正確,因爲我打電話裏面的while循環的循環,只是看起來不正確,我 - 作爲AZ標籤創建過程的每一次迭代將不得不通過while循環。
如果我要處理5000條樂隊,最好的方法是什麼?一個sql結果會多次循環,每個波段的一個結果保存在一個字母數組中,或者每當用戶點擊其中一個錨鏈接時發出一個ajax sql查詢?
這甚至沒有開始處理0-9選項卡,我認爲這將是一個問題本身給我目前的代碼。任何指針真的會被讚賞。
...我已經尋找一個答案,但沒有發現類似的東西,以我的問題:)
雖然我可以看到更好的解決方案循環問題你有(一個循環應該是足夠的),我肯定不會向瀏覽器發送5000個結果,這不會帶來非常愉快的瀏覽體驗。 – jeroen