Vraag : Hoe krijg ik het volgende en vorige verslag van één doelverslag in een reeks verslagen?

In orde, heb ik een inboxinterface die mijn gebruikers hun berichten laat lezen. Inbox wordt gepagineerd door SQL GRENS en COMPENSATIE…. de COMPENSATIE wordt berekend door de verslagen die getoonde tijden het paginaaantal saught ..... vrij standaard zijn.

So een gebruiker op een bepaald bericht klikt, en ik heb Vorig | Volgende navigatie voor gebruiker om zich door zijn berichten te bewegen…. welke behoefte van I een manier voor me is om slechts vorige conversation_id van het vorige en volgende verslag van DIT verslag te grijpen. En als het gebeurt zo dat DIT verslag het eerste bericht in inbox is, dan moet het vorige bericht dan het laatste bericht in inbox zijn. Het zelfde als DIT bericht laatste is, de Volgende knoop moet aan het eerste bericht in inbox.

rollen op dit ogenblik ik heb:

$sql_2 = „SELECTEERT conversation_id UIT app_get_account_inbox_funk („“. $this->account_id. „“); „;

and van PHP I grijpt het vorige en volgende afhangen van waar DIT conversation_id in de het terugkeren serie wordt gevonden. Dit is o.k., maar kan ik dat zodra de gebruikers 1000 of meer berichten in zijn veronderstellen inbox heeft dit absoluut de ideeën page.

Any zal vertragen? Ook, gebruik ik postgres. Thanks.

Antwoord : Hoe krijg ik het volgende en vorige verslag van één doelverslag in een reeks verslagen?

Veronderstellend dat ids in het stijgen orde zijn probeer gebruikend dit querys

- DAARNA
$sql = „selecteer * UIT app_get_account_inbox_funk waar account_id=“. $this->account_id.“ EN conversation_id> ". $this->conversartion_id. „orde door conversation_id ASC GRENS 1“;
- VORIG
$sql = „selecteer * UIT app_get_account_inbox_funk waar account_id=“. $this->account_id.“ EN<> conversation_idconversartion_id. „orde door conversation_id DESC GRENS 1“;
En in het geval van laatste/eerst het bericht
- DUUR
$sql = „selecteer * UIT app_get_account_inbox_funk waar account_id=“. $this->account_id.“ orde door conversation_id DESC GRENS 1 ";
- EERST
$sql = „selecteer * UIT app_get_account_inbox_funk waar account_id=“. $this->account_id.“ orde door conversation_id ASC GRENS 1 ";
Andere oplossingen  
 
programming4us programming4us