php mysql 按日期排序(最近) [英] php mysql sort by date (Recent)

查看:41
本文介绍了php mysql 按日期排序(最近)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我的代码正在从 SQL 获取移动应用程序中的数据,作为第一次添加显示,我需要将其设置为在我的 Android 应用程序中显示最后添加为第一次.我有如下所示的 api 代码,根据我的要求显示最新的代码,但对于 cid 和辅助,我需要与最新的相同(必须首先显示最近的).我的代码如下谢谢

I have now my code is fetching data in mobile application from SQL as first added showing first, I need to set it as showing last added as first in my android application. I have api code like below, in latest its showing as per my requirement but for cid and aid I need same as latest ( must show recent as first). My code is like below Thanks

<?php include("includes/connection.php");

error_reporting(0);

mysql_query("SET NAMES 'utf8'");    

if(isset($_GET['cid']))
{
if(isset($_GET['cat_id']))
{

    $cat_id=$_GET['cat_id'];        

        $query="SELECT * FROM tbl_quotes
    LEFT JOIN tbl_category ON tbl_quotes.cat_id= tbl_category.cid 
    where tbl_quotes.cat_id='".$cat_id."'";

}
else if(isset($_GET['latest']))
{
    $limit=$_GET['latest'];     
    $query="SELECT * FROM tbl_quotes
    LEFT JOIN tbl_category ON tbl_quotes.cat_id= tbl_category.cid 
    ORDER BY tbl_quotes.id DESC LIMIT $limit";
}
else
{

    $query="SELECT cid,category_name,category_image FROM tbl_category";


}
$resouter = mysql_query($query);

$set = array();

$total_records = mysql_num_rows($resouter);
if($total_records >= 1){

  while ($link = mysql_fetch_array($resouter, MYSQL_ASSOC)){

    $set['Quotes'][] = $link;

  }
}

    /* output in format */

 //echo $val= str_replace('\\/', '/', json_encode($set));
     header( 'Content-Type: application/json; charset=utf-8' );

    echo str_replace('\\/', '/',json_encode($set,JSON_UNESCAPED_UNICODE));


    }
else{
if(isset($_GET['aid']))
{

    $author_id=$_GET['aid'];        

        $qry="SELECT * FROM tbl_quotes
    LEFT JOIN tbl_author ON tbl_quotes.aid= tbl_author.author_id 
    where tbl_quotes.aid='".$author_id."'";

}
else if(isset($_GET['latest']))
{
    $limit=$_GET['latest'];     
    $qry="SELECT * FROM tbl_quotes
    LEFT JOIN tbl_author ON tbl_quotes.aid= tbl_author.author_id
    LEFT JOIN tbl_category ON tbl_quotes.cat_id= tbl_category.cid
    ORDER BY tbl_quotes.id DESC LIMIT $limit";
}
else
{

    $qry="SELECT author_id,author_name,author_image FROM tbl_author";

}

$resultouter = mysql_query($qry);

$author_set = array();

$total_records = mysql_num_rows($resultouter);
if($total_records >= 1){

  while ($link = mysql_fetch_array($resultouter, MYSQL_ASSOC)){

    $author_set['Quotes'][] = $link;
  }
}

// echo $value= str_replace('\\/', '/', json_encode($author_set));

    /* output in format */

    header( 'Content-Type: application/json; charset=utf-8' );

    echo str_replace('\\/', '/',json_encode($author_set,JSON_UNESCAPED_UNICODE));
}
?>

推荐答案

当您使用 SELECT 语句从表中查询数据时,结果集没有按任何顺序排序.要对结果集进行排序,请使用 ORDER BY

When you use the SELECT statement to query data from a table, the result set is not sorted in any orders. To sort the result set, you use the ORDER BY

就像那样:-

ORDER BY column1 [ASC|DESC]

在您的代码中:-

$query="SELECT * FROM tbl_quotes
    LEFT JOIN tbl_category ON tbl_quotes.cat_id= tbl_category.cid 
    ORDER BY tbl_quotes.id DESC,date DESC LIMIT $limit";

如果您的列数据类型不是 datedatetime 我们 cast() 像这样 :-

if you column data type is not date or datetime us cast() like that :-

CAST(column_name AS DATETIME);
CAST(column_name AS DATE);

这篇关于php mysql 按日期排序(最近)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆