Avatar billede dab93 Nybegynder
17. april 2011 - 15:26 Der er 3 kommentarer og
1 løsning

PHP Pagination

Kære eksperten.dk.

Mit spørgsmål er om nogen kan hjælpe mig med at lave et PHP Pagination system til min blog. Jeg benytter mig stort set kun af PHP, og derfor kan jeg ikke benytte mig af andre kodnings-former for at kunne forstå svaret.

Jeg har prøvet at søge på Google, men de svar der fremkommer kan jeg ikke bruge, desværre. Håber at i kan hjælpe mig.

Mvh. Daniele
Avatar billede dab93 Nybegynder
17. april 2011 - 15:52 #1
Tror at jeg har fundet ud af det, så trækker mine point tilbage :)
Avatar billede Slettet bruger
17. april 2011 - 19:49 #2
Hej Daniele

Godt for dig. Men så er det "god tone" liiige at skrive lidt om HVAD der løste dit problem.
- Dit spørgsmål bliver jo liggende "til evig tid", og lover en løsning på "pagination" problemer..

Evt. bare et link til hvad-det-end-var som hjalp dig videre..
Avatar billede repox Seniormester
17. april 2011 - 20:04 #3
Udover 'god tone' er det også en del af de brugerbetingelser man accepterede ved oprettelsen af sin bruger at man deler sine løsninger.
Avatar billede dab93 Nybegynder
29. april 2011 - 10:09 #4
<?php
$limit = 10;
  $query = "SELECT COUNT(*) as num FROM database ORDER BY id DESC";
  $total_pages = mysql_fetch_array(mysql_query($query));
  $total_pages = $total_pages[num];

if($num_rows == "0") {
echo "Der er ikke skrevet nogle indlæg";
} else {

    $stages = 3;
    $page = mysql_escape_string($_GET['page']);
    if($page){
        $start = ($page - 1) * $limit;
    }else{
        $start = 0;   
        }   
   
    // Get page data
    $query1 = "SELECT * FROM database ORDER BY id DESC LIMIT $start, $limit";
    $result = mysql_query($query1);
   
    if ($page == 0){$page = 1;}
    $prev = $page - 1;   
    $next = $page + 1;                           
    $lastpage = ceil($total_pages/$limit);       
    $LastPagem1 = $lastpage - 1;                   
   
   
    $paginate = '';
    if($lastpage > 1)
    {   
   

   
   
        $paginate .= "<div class='paginate'>";
        // Previous
        if ($page > 1){
            $paginate.= "<a href='$targetpage/page/$prev'><</a>";
        }else{
            $paginate.= "<span class='disabled'><</span>";    }
           

       
        // Sider
        if ($lastpage < 7 + ($stages * 2))    // Ikke nok sider til at bryde op
        {   
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page){
                    $paginate.= "<span class='current'>$counter</span>";
                }else{
                    $paginate.= "<a href='$targetpage/page/$counter'>$counter</a>";}                   
            }
        }
        elseif($lastpage > 5 + ($stages * 2))
        {
            if($page < 1 + ($stages * 2))       
            {
                for ($counter = 1; $counter < 4 + ($stages * 2); $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage/page/$counter'>$counter</a>";}                   
                }
                $paginate.= "...";
                $paginate.= "<a href='$targetpage/page/$LastPagem1'>$LastPagem1</a>";
                $paginate.= "<a href='$targetpage/page/$lastpage'>$lastpage</a>";       
            }
            // Tallene i midten af panelet
            elseif($lastpage - ($stages * 2) > $page && $page > ($stages * 2))
            {
                $paginate.= "<a href='$targetpage/page/1'>1</a>";
                $paginate.= "<a href='$targetpage/page/2'>2</a>";
                $paginate.= "...";
                for ($counter = $page - $stages; $counter <= $page + $stages; $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage/page/$counter'>$counter</a>";}                   
                }
                $paginate.= "...";
                $paginate.= "<a href='$targetpage/page/$LastPagem1'>$LastPagem1</a>";
                $paginate.= "<a href='$targetpage/page/$lastpage'>$lastpage</a>";       
            }
            else
            {
                $paginate.= "<a href='$targetpage/page/1'>1</a>";
                $paginate.= "<a href='$targetpage/page/2'>2</a>";
                $paginate.= "...";
                for ($counter = $lastpage - (2 + ($stages * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page){
                        $paginate.= "<span class='current'>$counter</span>";
                    }else{
                        $paginate.= "<a href='$targetpage/page/$counter'>$counter</a>";}                   
                }
            }
        }
                   
                // Næste
        if ($page < $counter - 1){
            $paginate.= "<a href='$targetpage/page/$next'>></a>";
        }else{
            $paginate.= "<span class='disabled'>></span>";
            }
           
        $paginate.= "</div>";       
   
   
}

// panelet
echo $paginate;
?>


Her er der et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester