Kom ihåg mig?
Home Menu

Menu


Avancerad sidnumrering i PHP

 
Ämnesverktyg Visningsalternativ
Oläst 2012-07-08, 22:48 #9
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
Hej vänner! Jag har gjort om sidnumreringen aningen. Jag gillar den som den är idag faktiskt.

-------
-------

Ser nu ut såhär:

1 2 3 4 5 ... 24 Nästa
Föregående 1 2 3 4 5 ... 24 Nästa
Föregående 1 2 3 4 5 ... 24 Nästa
Föregående 1 2 3 4 5 ... 24 Nästa
Föregående 1 ... 5 6 7 8 9 ... 24 Nästa
Föregående 1 ... 5 6 7 8 9 ... 24 Nästa
Föregående 1 ... 5 6 7 8 9 ... 24 Nästa
Föregående 1 ... 5 6 7 8 9 ... 24 Nästa
Föregående 1 ... 9 10 11 12 13 ... 24 Nästa

tills:

Föregående 1 ... 21 22 23 24


Här kommer även koden!

Index.php:

PHP-kod:
$result mysql_query("SELECT * FROM products WHERE visible = '1'");
$result mysql_query($query);
$items 2// Antal items per sida
$num_rows mysql_num_rows($result);

$nrpage_amount $num_rows/$items;
$page_amount ceil($num_rows/$items);
$page_amount $page_amount-1;

if (isset(
$_GET['p'])) {
$page mysql_real_escape_string($_GET['p']);
} else {
$page 1;
}

$p_num $items*$page;

$result mysql_query("SELECT * FROM products WHERE visible = '1' ORDER BY 'price' ASC LIMIT $p_num , $items");

while(
$product mysql_fetch_array($result)) {
//Här skrivs produkterna ut
};

paging(); 

Function.php:
PHP-kod:
function paging(){
    global 
$num_rows// Antal rader i db (49)
    
global $page// Nuvarande sida
    
global $page_amount// Antal sidor (Antal rader delat på produkter per sida (25))
    
$dottes 0// Räknare för punkter
    
    
if($page_amount != "0"){ // Om det finns fler än 1 sida
        
        
echo "<ul>";
            if(
$page != "1"){ // Om nuvarande sidan inte är första sidan (0 = förstasidan)
                
$prev $page-1;
                echo 
"<li><a href=\"?p=$prev\">F&ouml;reg&aring;ende</a></li>";
                if (
$page 4) {echo '<li><a href="?p=1">1</a></li>';echo "<li>...</li>";}
                
            }
            
            
$first * (int)floor(($page-1) / 4)+ 1;
            
            for (
$p $first$p<$first+&& $p<=$page_amount$p++) {
                if (
$p == $page) {
                    echo 
'<li><div class="curr">'$p'</div></li>';
                } else {
                    echo 
'<li><a href="?p='$p'">'$p'</a></li>';
                }
            }
            
            if (
$page_amount $first >= 5) {
            echo 
'<li>...</li>';
            echo 
'<li><a href="?p='$page_amount'">'$page_amount'</a></li>';
            }
            
            if(
$page $page_amount){ // Om $page (nuvrande sidan) är mindre än $page_amount (antal sidor)
                
$next $page+1;
                echo 
"<li><a href=\"?p=$next\">N&auml;sta</a></li>";
            }
        echo 
"</ul>";
    }

jonssondesign är inte uppkopplad   Svara med citatSvara med citat
 


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

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 17:18.

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