sql >> データベース >  >> RDS >> Mysql

MySQLレコードのリストで次のアイテムを取得するにはどうすればよいですか?

    私は実際にはSymfonyを使用していませんが、リモートで最近のバージョンのPropelを使用している場合は、 paginate() メソッド これは、最終的にははるかに優れている可能性があります。

    $pager = CartQuery::create()
               ->filterByCategory($category)
               ->orderBy(CartPeer::ITEM_NAME)
               ->paginate($pageToLoad, $resultsPerPage);
    foreach($pager as $result) {
      // do something with the record
    }
    if ($pager->haveToPaginate()) {
      // build some paging items using PropelModelPager methods:
      if (!$pager->isFirstPage()) {
        echo "<a href='?page=".$pager->getPreviousPage()."'>Previous</a>";
      }
      if (!$pager->isLastPage()) {
        echo "<a href='?page=".$pager->getNextPage()."'>Next</a>";
      }
    }
    

    本当に自分のやり方でやりたい場合は、ItemIdによる制限を完全に排除し、制限とともにオフセットを追加することをお勧めします。

    // This will be however many results have already been shown (page size?)
    $offset = 10;
    
    $c = new Criteria();
    $c->add(CartPeer::CATEGORY, $category);
    $c->addAscendingOrderByColumn(CartPeer::ITEM_NAME);
    $c->setOffset($offset);
    $this->next = CartPeer::doSelectOne($c);
    



    1. IMAPとPHP-送信済みフォルダと受信トレイフォルダからすべてのメールを取得する

    2. Rails 3.1:時間範囲内のレコードのPostgresへのクエリ

    3. NextForm v3:データとデータベースの移行のための5つのオプション

    4. 削除後にSQLServerで自動インクリメントをリセットする