Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和MySQL按字母和数字顺序获取数据?_Php_Mysql - Fatal编程技术网

如何使用PHP和MySQL按字母和数字顺序获取数据?

如何使用PHP和MySQL按字母和数字顺序获取数据?,php,mysql,Php,Mysql,如何使用PHP和MySQL按字母和数字顺序获取数据 我想这样显示我的数据: 请帮助我使用PHP和MySQL解决这个问题 <ul> <?php include "config.php"; $sql4 = mysql_query("select * from categories"); $count = mysql_num_rows($sql4); while($rows = mysql_fetch_array($sql4))

如何使用PHP和MySQL按字母和数字顺序获取数据

我想这样显示我的数据:

请帮助我使用PHP和MySQL解决这个问题

<ul>
    <?php include "config.php";
        $sql4 = mysql_query("select * from categories");
        $count = mysql_num_rows($sql4);
        while($rows = mysql_fetch_array($sql4)){
     ?>

<li><?php echo $rows['category_name'] ?></li>
<?php } ?>

</ul>

您可以创建一个2D数组:让
$result
成为您查询的mysql\u结果:

$data = array();
while($row = mysql_fetch_assoc($result)) {
  $letter = strtolower(substr($row["category_name"],0,1));
  if(is_numeric($letter)) $letter = "0-9";
  if(!isset($data[$letter])) $data[$letter] = array();
  $data[$letter][] = $row["category_name"];
}
然后迭代生成所需的表:

foreach($data as $column=>$values) {
  // $column contains the first letter (or 0-9)
  foreach($values as $value) {
    // $value contains category_name
  }
}

我希望你能从这一点上完成它,因为这个网站不应该为你解决所有的问题。

更新技能到PDO,因为mysql不会很快工作

    <?php include "config.php";
        $sql4 = mysql_query("select * from categories order by category_name ASC");
        $count = mysql_num_rows($sql4);
        while($rows = mysql_fetch_array($sql4)){

    $l = $row['category_name'][0]; // first letter/number
    $category_list[$l][]= $row['category_name'];
}



您的代码是什么?数据从哪里来?我已经添加了代码..请检查sql查询中的使用
按类别排序\u name ASC
请阅读我的问题。我希望这不是因为你的例子前后矛盾。您想要按字母顺序降序还是按字母顺序升序?谢谢您的回复。您能详细描述一下如何显示吗?根据我的代码再次感谢..所以我必须显示数据,如我是否正确?否-查看我的更新。我相信你能从这一点上完成它。好的。对于数字,这是可以的。。但按字母顺序如何划分?请参阅此链接。我想要像这样显示数据
    <?php include "config.php";
        $sql4 = mysql_query("select * from categories order by category_name ASC");
        $count = mysql_num_rows($sql4);
        while($rows = mysql_fetch_array($sql4)){

    $l = $row['category_name'][0]; // first letter/number
    $category_list[$l][]= $row['category_name'];
}
<ul>
<?php
if(is_array($category_list)){
foreach($category_list as $k=>$v) {
    echo "<li>$k</li>"; // letter/number

    foreach($v as $cat) {
      echo "<li>$cat</li>"; // category name
  }

  }
}
?>
</ul>