【问题标题】:How to browse results with php mssql?如何使用 php mssql 浏览结果?
【发布时间】:2009-03-02 19:35:29
【问题描述】:

我正在使用 php,我想做一个下一步按钮,该按钮可以进入接下来的 10 条记录(例如当您使用 stackoverflow 浏览问题时) 我不知道该怎么做,但我想用 Top n 记录来做?你认为这是个好主意吗?有什么建议吗?

【问题讨论】:

  • 您是指 MS SQL Server 还是 MySQL?两者之间的操作方式非常不同。

标签: php sql-server


【解决方案1】:

至于在 PHP 中执行此操作,您可以轻松地使按钮发送 POST 或 GET 请求以获取起始金额。例如,用户会发出初始请求,这只是yoursite.com/search.php,然后下一个按钮会将他们发送到具有相同搜索条件的同一页面,仅发送一个附加字段“开始”,(即yoursite.com/search.php?start=10) .在代码中,您可以简单地检查它:

if(isset($_POST['start'])) {
    //code to add to the search string to start at $_POST['start']
}

编辑 1: This article 是我能找到的关于如何复制 MySQL 的 LIMIT 函数的最佳方法。此外,this one 有一个更明确的查询可供参考,但想法相同。

【讨论】:

    【解决方案2】:

    我知道在 MySQL 中你可以使用 LIMIT X, Y 其中 X 是返回的下限,Y 是上限。因此,如果您想返回 10-20,您将使用 LIMIT 10、20。不确定 MS-SQL 等价物是什么。

    【讨论】:

      【解决方案3】:

      在 mysql 中 mssql 没有类似 LIMIT 的东西吗?所以你可以这样做:

      select xxx from yyy LIMIT 0,10
      

      对于前 10 个结果,然后为接下来的 10 个结果执行 LIMIT 10,20,等等。

      【讨论】:

      • 不,它没有。 TOP 允许您执行 LIMIT 0,10,但不允许您执行 LIMIT 10,20。
      • ?他在答案中使用了限制,而不是顶部。
      【解决方案4】:

      你可以使用 MySQL 的限制

      设置一个变量叫:

      $limit = 10;
      $pl = $_GET["page"] * $limit;
      if(!isset($_GET["page"]) || $_GET["page"] == 1)
      {
          $pl = 0;
      }
      

      在你的查询中做

      $sql = sprintf("SELECT * FROM table LIMIT %d,%d" 
      mysql_real_escape_string($pl),
      mysql_real_escape_string($limit));
      

      顺便说一句,这是凭记忆,但我认为它有效。

      【讨论】:

        【解决方案5】:

        这对你有帮助吗?

        $count=$_POST[page]*10;
        

        【讨论】:

        • 啊,显然 MSSQL 查询导致 stackoverflow 不接受答案。一秒钟,我会发布的。
        • 相反,请参考这个,因为 stackoverflow 将简单地接受查询(我不知道为什么):stackoverflow.com/questions/603724/…
        【解决方案6】:

        对于 MySQL:

        $rowsPerPage = 10;
        $offset = ((int)$_GET['page'] - 1) * $rowsPerPage;
        
        $result = mysql_query(
            sprintf('select xxx from yyy LIMIT %d,%d', $offset, $rowsPerPage)
        ); 
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-04
          • 2012-05-10
          • 1970-01-01
          相关资源
          最近更新 更多