Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Mysql SQL排序:使用DESC对块进行排序-但每个块在自身内部按ASC进行排序_Mysql_Sql_Yii_Cactivedataprovider - Fatal编程技术网

Mysql SQL排序:使用DESC对块进行排序-但每个块在自身内部按ASC进行排序

Mysql SQL排序:使用DESC对块进行排序-但每个块在自身内部按ASC进行排序,mysql,sql,yii,cactivedataprovider,Mysql,Sql,Yii,Cactivedataprovider,我有一个包含消息及其发布日期的SQL表 让我们把这些消息称为M1,M2。。。M99。M1是最新的消息 我想以whatsapp的方式显示它们我正在使用Yii 1.1框架: 最新消息M1位于底部,其上方是第二条最新消息M2,以此类推 但我想按固定数量的消息块显示它们,比如说5条,如果请求,我将加载上一条消息。因此,在加载页面时,您应该看到: 加载更多按钮 M5 M4 M3 平方米 M1 单击“加载更多”按钮一次后,我将从上到下: 加载更多按钮/M10/M9/M8/M7/M6/M5/M4/M3/M2/

我有一个包含消息及其发布日期的SQL表

让我们把这些消息称为M1,M2。。。M99。M1是最新的消息

我想以whatsapp的方式显示它们我正在使用Yii 1.1框架: 最新消息M1位于底部,其上方是第二条最新消息M2,以此类推

但我想按固定数量的消息块显示它们,比如说5条,如果请求,我将加载上一条消息。因此,在加载页面时,您应该看到:

加载更多按钮

M5

M4

M3

平方米

M1

单击“加载更多”按钮一次后,我将从上到下:

加载更多按钮/M10/M9/M8/M7/M6/M5/M4/M3/M2/M1

我试图在Yii上使用ActiveDataProvider实现这一点,但是为此,我需要将数据按如下方式排序:

M5、M4、M3、M2、M1、M10、M9、M8、M7、M6、M15、M14、M13、M12、M11等

我不知道如何实现这种排序,即使使用限制和偏移

如果有人能帮我,我会很高兴的,谢谢

编辑: 这是我正在使用的ActiveDataProvider

public function getMessagesDataProvider()
{
    $dataProvider = new CActiveDataProvider(Message::model(), array(
        'criteria' => array(
            'condition' => 't.inquiry_thread_id = :threadId',
            'params' => array(':threadId' => $this->id),
            'order' => 't.created_at DESC',
        ),
        'pagination' => array('pageSize' => 5, 'pageVar' => 'page'),
    ));
    $dataProvider->getData();
}
在我看来

<?php $this->widget('\common\widgets\ListView', array(
    'dataProvider' => $messagesDataProvider,
    'pager' => array(
        'class' => '\common\widgets\LoadMorePager',
        'canBeReloadedByAjax' => true,
    ),
    'template' => '{pager}{items}',
    'itemView' => '/message/_messageItem',
    'itemsCssClass' => 'pager-container',
    'pagerCssClass' => 'inquiry-message-button',
)); ?>
您可以使用和反转数据提供程序中项目的顺序:

$dataProvider->setData(array_reverse($dataProvider->getData()));

$dataProvider->getData将以相反的顺序返回页面项目。

为什么您的数据不能像/M10/M9/M8/M7/M6/M5/M4/M3/M2/M1?为什么在M5、M4、M3、M2、M1、M10、M9、M8、M7、M6、M15、M14、M13、M12、M11中需要它?按描述排序是否足够?Yii活动记录按顺序加载数据。因此,如果我有M10/M9/M8/M7/M6/M5/M4/M3/M2/M1,那么它将显示M10/M9/M8/M7/M6,我按5块显示数据。然而,我认为这可能比SQL问题更重要。你能展示你已经拥有的吗?如何配置数据提供程序?我编辑了我的PostWeSome!谢谢