sql >> Database >  >> RDS >> Mysql

Hoe het volgende item in een lijst met MySQL-records op te halen?

Ik gebruik Symfony eigenlijk niet, maar als je een zelfs op afstand recente versie van Propel gebruikt, heb je toegang tot de paginate() methode wat uiteindelijk een stuk beter voor je kan zijn.

$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>";
  }
}

Als je het echt op jouw manier wilt doen, wil je misschien de beperking door ItemId helemaal opheffen en gewoon een offset toevoegen samen met je limiet:

// 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. Importeer mysql-dump met php

  2. Verschil in het omgaan met de spaties tussen Oracle en SQL Server

  3. Hoe ontbrekende gegevensrijen te vinden met behulp van SQL?

  4. MariaDB 10 installeren en beveiligen in CentOS 7