我正在尝试按字母顺序对列表进行排序,该列表取自 MySQL 数据库,但我只能按升序或降序排列信息。这是我当前使用的代码:
if(isset($_GET['cat_id']))
{
$cat_id=$_GET['cat_id'];
$query="SELECT sub_cat_id,sub_cat_name FROM tbl_sub_category WHERE cat_id='". $cat_id."' ORDER BY tbl_sub_category.sub_cat_id DESC LIMIT $number_of_posts";
}
else if(isset($_GET['sub_cat_id']))
{
$sub_cat_id=$_GET['sub_cat_id'];
$query="SELECT * FROM tbl_directory WHERE d_subcat_id='". $sub_cat_id."' ORDER BY tbl_directory.d_id DESC LIMIT $number_of_posts";
}
else if(isset($_GET['sub_sub_cat_id']))
{
$sub_sub_cat_id=$_GET['sub_sub_cat_id'];
}
else if(isset($_GET['directory_id']))
{
$directory_id=$_GET['directory_id'];
$query="SELECT * FROM tbl_directory WHERE d_id='". $directory_id."'";
}
else
{
$query="SELECT cid,category_name,category_image FROM tbl_category ORDER BY tbl_category.cid DESC LIMIT $number_of_posts";
}
最佳答案
您需要按名称排序,而不是按 ID 排序。
注意:在必要时输入适当的字段名称。
更正的代码:
<?php
if(isset($_GET['cat_id'])) {
$cat_id=$_GET['cat_id'];
$query="SELECT sub_cat_id,sub_cat_name FROM tbl_sub_category WHERE cat_id='". $cat_id."' ORDER BY tbl_sub_category.sub_cat_name DESC LIMIT $number_of_posts";
}
else if(isset($_GET['sub_cat_id'])) {
$sub_cat_id=$_GET['sub_cat_id'];
$query="SELECT * FROM tbl_directory WHERE d_subcat_id='". $sub_cat_id."' ORDER BY tbl_directory.d_NAME_FIELD DESC LIMIT $number_of_posts";
}
else if(isset($_GET['sub_sub_cat_id'])) {
$sub_sub_cat_id=$_GET['sub_sub_cat_id'];
}
else if(isset($_GET['directory_id'])) {
$directory_id=$_GET['directory_id'];
$query="SELECT * FROM tbl_directory WHERE d_id='". $directory_id."'";
}
else {
$query="SELECT cid,category_name,category_image FROM tbl_category ORDER BY tbl_category.category)name DESC LIMIT $number_of_posts";
}
关于php - 在 PHP 中从数据库中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27597015/