gpt4 book ai didi

mysql - SQL排序: order blocks with DESC - but each block is sorted ASC within itself

转载 作者:行者123 更新时间:2023-11-29 16:57:12 24 4
gpt4 key购买 nike

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

我们将这些消息称为 M1、M2、...M99。 M1 是最新消息。

我想以whatsapp方式显示它们(我正在使用Yii 1.1框架):最新的消息M1在底部,上面是第二个最新的M2消息,依此类推。

但我想按固定数量的消息 block (比方说 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',
)); ?>

最佳答案

您可以使用setData()getData()反转数据提供程序中项目的顺序:

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

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

关于mysql - SQL排序: order blocks with DESC - but each block is sorted ASC within itself,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52483552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com