2017-07-09 2 views
1

Ich habe Schwierigkeiten mit meinem MYSQL/PHP Dashboard. - Zurzeit habe ich 50 Seiten, aber momentan werden alle auf derselben Seite angezeigt.MySQL/PHP - Seitenzahl Paginierung Zeige nur 10 Seiten mal

http://imgur.com/wDfTWUa - wie Sie in der beigefügten Datei sehen können. - Ich möchte nur 10 Seiten anzeigen lassen und in der Lage sein, durch den Rest der Seiten zu klicken, ohne 4 Seiten zu sehen.

Exsampel < - 2 3 4 5 6 7 8 9 10 -?>, Wenn Sie sind page = 1, wenn Sie sind auf Seite 10 page = < - 11 12 13 14 15 16 17 18 19->

Hoffe, du kannst mir helfen.

Code:

<?php 

include 'config.php'; 

$sidenr = $_GET['page']; 

$sidenr2 = ($sidenr -1) * 10; 

echo $sidenr2; 
echo "<br><br>"; 

$query100 = mysqli_query($conn, "SELECT * FROM `test` LIMIT $sidenr2,10") or die(mysqli_error($conn)); 
while($row = mysqli_fetch_array($query100))   
    { 
     echo $row['id']."<br>"; 
    } 

    $result = mysqli_query($conn, "SELECT * FROM test"); 
    $num_rows = mysqli_num_rows($result); 

    $sideantal = $num_rows/10; 

    echo "Der skal være antal sider: ". $sideantal; 

    echo "<br><br>antal rækker ". $num_rows . "<br><br>"; 

    ?> 
    <br><br> 
    <?php 

    for ($number = 1; $number <= $sideantal; $number++) { 
    echo "<li><a href=\"test.php?page=".$number."\" >". $number. "</a></li>"; 
    } 
    ?> 

Antwort

0
function getPageRange($current, $max, $total_pages = 10) { 
    $desired_pages = $max < $total_pages ? $max : $total_pages; 
    $middle = ceil($desired_pages/2); 
    if ($current <= $middle){ 
     return [1, $desired_pages]; 
    } 
    if ($current > $middle && $current <= ($max - $middle)) { 
     return [ 
      $current - $middle, 
      $current + $middle 
     ]; 
    } 
    if ($current <= $max) { 
     return [ 
      $current - ($desired_pages - 1), 
      $max 
     ]; 
    } 

} 
list($min,$max) = getPageRange($sidenr, $sideantal); 


foreach (range($min, $max) as $number) { 
    echo "<li><a href=\"test.php?page=".$number."\" >". $number. "</a></li>"; 
} 
+0

Hallo, es funktioniert wirklich gut! Nur ein Problem, wenn es nur 2 Seiten gibt, sollte es nicht weiter bis zu 5 Seiten zählen –

+0

Hai, bitte versuche es nochmal mit dem aktualisierten Code –

+0

Danke, es ist jetzt 100% perfekt! –

1

versuchen, dies zu ändern:

for ($number = 1; $number <= $sideantal; $number++) { 
    echo "<li><a href=\"test.php?page=".$number."\" >". $number. "</a> 
    </li>"; 
} 

dazu:

for ($number = 1; $number <= $sideantal; $number++) { 
    if (($number > $_GET['page']) && ($number <= $_GET['page'] + 10)) { 
     echo "<li><a href=\"test.php?page=".$number."\" >". $number. "</a> 
     </li>"; 
    } 
} 
+0

Vielen Dank für Ihre Antwort. Es ist wirklich gut! Aber wenn du vorwärts gehst, aber wenn du zurück gehst, nimm nicht die Felder, das heißt, wenn du das Ende der Seiten erreichst, verschwinden die Links. hoffe du verstehst –

+0

Beispiel ist, wenn es nur 2 Seiten gibt. und Sie sind auf Seite 2 seine einzige Show <- -> now.There sollte <- 1 -> –

0

Sie können den folgenden Code versuchen:

for ($number = 1; $number <= $sideantal; $number++) { 
    /** If the loop count is greater than the current page but less than current page plus 10 */ 
    if (($number > $_GET['page'] && ($number < ($_GET['page'] + 10)))) $is_valid = true; 


    /** If the loop count is less than the current page but greater than current page -10 and the current page is the last page */ 

    if ($number < $_GET['page'] && $_GET['page'] == $sideantal && $number > ($_GET['page'] - 10)) $is_valid = true; 

    else $is_valid = false; 

    if ($is_valid) { 
     echo "<li><a href=\"test.php?page=".$number."\" >". $number. "</a></li>"; 
    } 
} 
+0

zeigen die Webseite ist komplett leer mit diesem Skript. Es tut uns leid. –

+0

der Code fehlte eine schließende Klammer. versuchen Sie es erneut –

Verwandte Themen