Php 以字母标题按字母顺序列出

Php 以字母标题按字母顺序列出,php,mysql,Php,Mysql,从一个姓名数据库中,我打印出一个独特姓氏的列表,并统计每个姓氏出现的次数。然而,有500多个唯一的名字,这个列表读起来很痛苦 如何按首字母(如标题)分组 目标: 迄今为止的代码: $sql = "SELECT surname, COUNT(surname) AS count FROM $table WHERE first <> 'unknown' GROUP BY surname ORDER BY su

从一个姓名数据库中,我打印出一个独特姓氏的列表,并统计每个姓氏出现的次数。然而,有500多个唯一的名字,这个列表读起来很痛苦

如何按首字母(如标题)分组

目标:

迄今为止的代码:

 $sql = "SELECT surname, COUNT(surname) AS count
          FROM $table
          WHERE first <> 'unknown'
          GROUP BY surname
          ORDER BY surname ASC";

  $result = mysqli_query($conn,$sql);

  while($row = mysqli_fetch_assoc($result)) {  

    $surname = $row["surname"];
    $count = $row["count"];

  echo "<li>".$surname." (".$count."), </li>\n";
}
$sql=“选择姓氏、计数(姓氏)作为计数
从$table开始
第一个“未知”在哪里
按姓氏分组
按姓ASC排序”;
$result=mysqli\u查询($conn,$sql);
而($row=mysqli_fetch_assoc($result)){
$姓氏=$行[“姓氏];
$count=$row[“count”];
回显“
  • ”$姓氏”(“$count”),
  • \n”; }
    只要您强制对SQL查询进行排序,您就可以跟踪每个姓氏中看到的第一个字母,如果它不是当前活动的第一个字母,则只在PHP中插入一个标题:

    $html = "<ul>\n";
    $first = false;
    
    while($row = mysqli_fetch_assoc($result)) {  
      $surname = $row["surname"];
      $count = $row["count"];
    
      $index = substr($surname,0,1);
      if ($index != $first) {
        $first = $index;
        $html .= "</ul>\n<h2>$first</h2>\n<ul>";
      }
    
      $html .= "<li>$surname ($count)</li>\n";
    }
    
    $html .= "</ul>";
    
    ...
    
    echo $html
    
    $html=“
      \n”; $first=false; 而($row=mysqli_fetch_assoc($result)){ $姓氏=$行[“姓氏]; $count=$row[“count”]; $index=substr($姓氏,0,1); 如果($index!=$first){ $first=$index; $html.=“
    \n$first\n
      ”; } $html.=“
    • $name($count)
    • \n”; } $html.=“
    ”; ... echo$html
    只要您强制对SQL查询进行排序,您就可以跟踪每个姓氏中看到的第一个字母,如果它不是当前活动的第一个字母,则只在PHP中插入一个标题:

    $html = "<ul>\n";
    $first = false;
    
    while($row = mysqli_fetch_assoc($result)) {  
      $surname = $row["surname"];
      $count = $row["count"];
    
      $index = substr($surname,0,1);
      if ($index != $first) {
        $first = $index;
        $html .= "</ul>\n<h2>$first</h2>\n<ul>";
      }
    
      $html .= "<li>$surname ($count)</li>\n";
    }
    
    $html .= "</ul>";
    
    ...
    
    echo $html
    
    $html=“
      \n”; $first=false; 而($row=mysqli_fetch_assoc($result)){ $姓氏=$行[“姓氏]; $count=$row[“count”]; $index=substr($姓氏,0,1); 如果($index!=$first){ $first=$index; $html.=“
    \n$first\n
      ”; } $html.=“
    • $name($count)
    • \n”; } $html.=“
    ”; ... echo$html
    Hint:您也可以在MySQL中按第一个字母分组。提示:您也可以在MySQL中按第一个字母分组。