我想为我的网站制作一个目录列表页面.该页面显示了我的所有网站文章.这些文章的标题是第一封信.
MysqL query like "SELECT * FROM articles Where title like 'a%'" MysqL query like "SELECT * FROM articles Where title like 'b%'" MysqL query like "SELECT * FROM articles Where title like 'c%'" ... MysqL query like "SELECT * FROM articles Where title like 'z%'"
我的html输出是:
<div class="content"> <p>A</p> <a href="somelink">Anhui</a> <a href="somelink">Aomen</a> </div> <div class="content"> <p>B</p> <a href="somelink">Beijing</a> </div> <div class="content"> <p>C</p> <a href="somelink">Chongqing</a> </div> ... <div class="content"> <p>Z</p> <a href="somelink">Zhejiang</a> </div>
那么有什么好的建议我会做更少的mySQL查询并得到相同的结果?谢谢.
解决方法
不.制作单个查询,并按字母顺序排序,如下所示:
SELECT * FROM articles ORDER BY title ASC
然后,当您循环浏览它们以显示它们时,请跟踪您显示的上一篇文章.如果当前文章的第一个字母与最后一个字母不同,请将您的分隔.
$prevFirstLetter = ''; while($data = nextResult()) { $firstLetter = substr($data['title'],1); if ($firstLetter != $prevFirstLetter) echo "<h1>$firstLetter</h1>"; echo "{$data['title']}<br>"; $prevFirstLetter = $firstLetter; }