Php PDO检查结果是否存在&;按字母顺序呈现菜单

Php PDO检查结果是否存在&;按字母顺序呈现菜单,php,pdo,Php,Pdo,我想检查查询是否会产生结果。现在我为我的查询做一个行计数。如果rowcount大于0,我将再次进行一个新查询,获取查询的所有结果。当我在a-z范围内进行字母查询循环(即其中名称如“a%”)时,将导致52个查询来完成任务,这在我看来有点高估。您如何面对这种任务?结果我想呈现一个按字母顺序链接的菜单 A ---- Apple Link Annanas Link B ---- Banana Link etc. 也许有另一种方法可以在一个查询中实现这一点,并以某种方式按字母顺序导出结果,因为我需要

我想检查查询是否会产生结果。现在我为我的查询做一个行计数。如果rowcount大于0,我将再次进行一个新查询,获取查询的所有结果。当我在a-z范围内进行字母查询循环(即
其中名称如“a%”
)时,将导致52个查询来完成任务,这在我看来有点高估。您如何面对这种任务?结果我想呈现一个按字母顺序链接的菜单

A
----
Apple Link
Annanas Link

B
----
Banana Link

etc.

也许有另一种方法可以在一个查询中实现这一点,并以某种方式按字母顺序导出结果,因为我需要为每个字母呈现一个新的介绍菜单点。我希望你能提供一些有用的建议来调整我的表现

难道你不能一次选择所有内容并按你的专栏排序吗

SELECT * FROM your_table ORDER BY column_name ASC
然后,您可以循环查看是否有行,并比较第一个字母以确定您所在的字母:

$stmt->execute();
if ($stmt->rowCount()) {
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        $value = $row['column_name'];
        $first_letter = $value[0];
    }       
}
一旦你有了第一个字母,你可以用这个值做任何你想做的事情

要扩展此答案,您可以使用类似于以下内容的内容以头呼出值:

// initialize this variable
$current_letter = '';

// if you get results
if ($stmt->rowCount()) {
    // loop through each row
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        // when you loop, get the value
        $value = $row['column_name'];
        // if the value does not have the current letter you are on:
        if ($current_letter != $value[0]) {
            // echo a header for the new letter
            echo "<h2>" . $value[0] . "</h2>";
            // set the new letter to the current letter
            $current_letter = $value[0];
            // echo the actual value
            echo $value . "<br />";
        } else {
            // the value falls under our current letter, echo it
            echo $value . "<br />";
        }
    }
}
//初始化此变量
$当前字母='';
//如果你得到结果
如果($stmt->rowCount()){
//循环遍历每一行
而($row=$stmt->fetch(PDO::fetch\U ASSOC)){
//循环时,获取值
$value=$row['column_name'];
//如果该值没有您当前所在的字母:
如果($current_letter!=$value[0]){
//回显新字母的标题
回显“$value[0]”;
//将新字母设置为当前字母
$current_letter=$value[0];
//回显实际值
回显$value.“
”; }否则{ //该值属于我们当前的字母,请重复 回显$value.“
”; } } }
回答得很好,评论得很好,从中吸取了教训!我很感激