Kom ihåg mig?

Avancerad sidnumrering i PHP

 
 
Ämnesverktyg Visningsalternativ
Oläst 2012-07-09, 12:16 #1
Linuus Linuus är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2009
Inlägg: 890
Linuus Linuus är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2009
Inlägg: 890
Citat:
Ursprungligen postat av jonssondesign Visa inlägg
Ser att uthämtningen av produkter blir fel nu. ehm.

Om jag kör med $page = 1; så hämtar den inte ut, lika många produkter som man vill att det ska synas per sida, i början.

Säg att man har 100 produkter.
och vill visa 20 produkter per sida. (5 sidor).

Har jag då $page = 1; så börjar produkt nr 20 på startsidan.
Produkterna 1 - 20 är alltså inte med, så det listas bara 80 av 100 produkter.
Skriver jag dock index.php?p=0
då får jag fram produkterna 1 - 20.

Någon som ser varför detta kommer sig?

$query .= "LIMIT $p_num , $items";
Det verkar som om det är här de ligger.

$p_num = $items*$page; ($p_num = 20*1)

Så den börjar plocka ut produkter efter den 19 raden i databasen. INTE BRA!

Någon med några idéer?
Det beror väl bara på att du i koden börjar räkna från 0 och inte 1. Så om $page=0 (sida 1) så blir det ju rätt? Sen är ju $page=1 din sida 2 osv. Räkna med att $page = 1 är din förstasida istället
Linuus är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-07-09, 12:18 #2
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Vad sägs om
PHP-kod:
$p_num $items*($page-1
Du kan låta databasen räkna åt dig också genom att använda SELECT COUNT, så slipper du ladda över alla produkter bara för att räkna dem i php
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-07-09, 12:45 #3
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Smart!

Det fungerade nästa.

Nu börjar den ta ifrån första produkten, super!

Dock så visas inte sista sidan.

Säg att vi har 56 produkter, och vill bara visa 4 per sida (det är 14 sidor).
Då visas bara 13 sidor i sidnumreringen..
Lägger man dock till en ny produkt så att det blir 57 produkter, då visas 14 sidor, även om det egentligen skulle vara 15sidor. (57/4 = 14.25 (upphöjt = 15)). ehm..
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-07-09, 13:05 #4
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Först räknar du ut antal sidor och sen tar du bort en?

Testa att ta bort den här raden
PHP-kod:
$page_amount $page_amount-1
jonny är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-07-09, 13:40 #5
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Helt rätt! Testade också detta, och det fungerade perfekt!

Ska jag vara ärlig så har jag testat precis vad vi gjorde nu, bara att jag va så trött att jag skrev: $p_num = $items*$page-1; istället för $p_num = $items*($page-1); Haha!

Enkelt löst iaf! Tack jonny!

Tack även till dig linuus, men jag hade hoppats på att slippa räkna om hela skiten

Jag använde denna sidas kod som grund till alltihopp..
http://snipplr.com/view/55519/

Tack igen grabbar!

Lägger ut sidan på feedback senare, så får ni se om ni gillar vad ni har bidragit till

Tack!

PS. som ni ser så ligger $page_amount = $page_amount-1; med i "original"´-koden, hade därför inte tanken på att den tog bort en sida.. :S sorry about that!

Senast redigerad av jonssondesign den 2012-07-09 klockan 13:43
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:30.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017