【问题标题】:php mysql sort by date (Recent)php mysql 按日期排序(最近)
【发布时间】:2016-01-31 14:00:36
【问题描述】:

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

<?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));
}
?>

【问题讨论】:

  • 您希望使用 id 来订购偶数日期??
  • 请注意,您使用的旧 mysql_* 扩展在 PHP 5.5 版(当前版本)中已弃用,并且正在从版本 7(下一个版本)中删除。您需要迁移到使用 mysqli_* 扩展或 PDO 您是使用该代码进行 SQL 注入攻击的坐鸭,因为没有对用户提交的数据进行验证,甚至没有进行转义!

标签: php android mysql sql api


【解决方案1】:

也可以使用 order by 作为日期。

 ORDER BY tbl_quotes.id DESC, DATE(your_date_column) desc

另请参阅documentation 了解更多信息

【讨论】:

    【解决方案2】:

    当您使用SELECT 语句从表中查询数据时,结果集不按任何顺序排序。要对结果集进行排序,请使用 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() 像这样:-

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

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      相关资源
      最近更新 更多