WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Avancerad sidnumrering i PHP (https://www.wn.se/forum/showthread.php?t=1054091)

Linuus 2012-07-09 12:16

Citat:

Ursprungligen postat av jonssondesign (Inlägg 20444455)
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 :)

jonny 2012-07-09 12:18

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

jonssondesign 2012-07-09 12:45

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..

jonny 2012-07-09 13:05

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


jonssondesign 2012-07-09 13:40

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!


Alla tider är GMT +2. Klockan är nu 15:48.

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