SQL 排序:使用 DESC 对块进行排序 - 但每个块在其内部按 ASC 排序
SQL sorting: order blocks with DESC - but each block is sorted ASC within itself
我有一个 SQL table,其中包含消息及其发布日期。
我们将这些消息称为 M1、M2、... M99。 M1 是最新消息。
我想以 whatsapp 的方式显示它们(我使用的是 Yii 1.1 框架):
最新的消息M1在底部,上面是第二个最新的M2消息,依此类推
但我想按固定数量的消息块(假设为 5)显示它们,如果需要,我将加载以前的消息。所以当加载页面时你应该看到:
(加载更多按钮)
M5
M4
M3
M2
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',
)); ?>
我有一个 SQL table,其中包含消息及其发布日期。
我们将这些消息称为 M1、M2、... M99。 M1 是最新消息。
我想以 whatsapp 的方式显示它们(我使用的是 Yii 1.1 框架): 最新的消息M1在底部,上面是第二个最新的M2消息,依此类推
但我想按固定数量的消息块(假设为 5)显示它们,如果需要,我将加载以前的消息。所以当加载页面时你应该看到:
(加载更多按钮)
M5
M4
M3
M2
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',
)); ?>