【问题标题】:PHP, mySQL : Set an Array limit \ offsetPHP, mySQL : 设置数组限制\偏移
【发布时间】:2015-09-17 08:19:27
【问题描述】:

大家好,我如何设置限制和偏移 vor sql 数组 我正在执行一个 .sql 文件并将其写入$sql,但我需要一个偏移量进行分页,因为我得到了整个数据集。

public function getSqlDetailsAction()
{
    $fileName = $this->Request()->getParam('fileName');
    $pluginFolder = dirname(dirname(__DIR__));
    $sqlFolder = $pluginFolder . '/SqlFiles/';
    $filePath = $sqlFolder . $fileName;
    $sql = file_get_contents($filePath);
    $sql.=" limit ".$start.", ".$limit;
    $sqlResultList = Shopware()->Db()->query($sql);
    $this->View()->success = true;
    $this->View()->data = $sqlResultList->fetchAll();
}

【问题讨论】:

  • sql文件有什么内容?
  • 从表中选择 * !这里来自 js 后端的请求 'dev/backend/UnSqlReader/getSqlDetails?_dc=1442478815251&fileName=sql2.sql&page=1&start=0&limit=25'
  • 你有它,但你没有$start$limit 设置所以设置这些,你就可以开始了。我会把这条线改成$sql.=" limit $start,$limit"

标签: php pagination limit offset


【解决方案1】:

我猜您是开发新手,或者在您不熟悉的环境中修改其他人的代码,或者只是将 SO 用作免费开发。所以我会为你编码。

public function getSqlDetailsAction()
{
    $fileName = $this->Request()->getParam('fileName');
    $start    = $this->Request()->getParam('start');
    $limit    = $this->Request()->getParam('limit');

    $pluginFolder = dirname(dirname(__DIR__));
    $sqlFolder = $pluginFolder . '/SqlFiles/';
    $filePath = $sqlFolder . $fileName;
    $sql = file_get_contents($filePath);
    $sql.=" limit ".$start.", ".$limit;
    $sqlResultList = Shopware()->Db()->query($sql);
    $this->View()->success = true;
    $this->View()->data = $sqlResultList->fetchAll();
}

从您提供给我们的信息来看,这似乎很明显,但是正如我看到的,您在查询字符串中有一个 page=1,也许您打算做一些稍微不同的事情,并从页码和行中计算 LIMIT 值-每页机制,但这只是一个额外的 F.L.O.C,你应该能够解决这个问题。

【讨论】:

  • 谢谢你 :) 它工作正常 :D 是的,你是 PH​​P 的新手 :D
猜你喜欢
  • 1970-01-01
  • 2016-04-23
  • 2021-12-29
  • 2016-06-18
  • 2011-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多