Blättern mit PHP/MySQL/Count/...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Blättern mit PHP/MySQL/Count/...

    Hallo ihr lieben.

    Hab da mal ne frage was ich da jetzt genau falsch machen. undzwar geht das blätter nicht wirklich. er gibt die zahlen zwar aus wenn man jedoch draufklickt bleibt er trozdem bei den ersten 10 geht sozusagen nicht auf seite 2. Ich finde jedoch keinen fehler aber vieleicht ihr.

    Vielen lieben dank schonmal im vorraus

    Hier mal der code

    Quellcode

    1. if ($_GET['site']=="kunden"){
    2. if (!isset($start)) { $start = 0;}
    3. $sql = "SELECT * FROM kic_kunde";
    4. $result = mysql_query($sql);
    5. $total = mysql_num_rows($result);
    6. $proseite="10";
    7. // Links zu anderen Ergebnissen erstellen und anzeigen
    8. if ($total>$proseite) {
    9. $out=" Seite ";
    10. if($start!="0") {
    11. $startneu = $start - $proseite;
    12. $out .= "&nbsp;<a href=\"index.php?site=kunden&start=$startneu\"><</a>&nbsp;";
    13. }
    14. $pages=intval($total/$proseite);
    15. if (($total%$proseite)!=0) { $pages++;}
    16. if (($pages!=0) && ($pages!=1)) {
    17. for($i=0;$i<$pages;$i++) {
    18. if ($start!=$i * $proseite) {
    19. $startneu = $i * $proseite;
    20. $zahl = $i + 1;
    21. $out .= "<a href=\"index.php?site=kunden&start=$startneu\">$zahl</a>&nbsp;";
    22. }
    23. else {
    24. $zahl = $i + 1;
    25. $out .= "<b>$zahl</b>&nbsp;";
    26. }
    27. }
    28. }
    29. if (($total-$start > $proseite) && ($start!=0)) { $out .= "";}
    30. if($total-$start > $proseite) {
    31. $startneu = $start + $proseite;
    32. $out .= "&nbsp;<a href=\"index.php?site=kunden&start=$startneu\">></a>";
    33. }
    34. }
    35. $sql = "SELECT * FROM kic_kunde ORDER BY kunden_nr ASC LIMIT $start, $proseite";
    36. $result = mysql_query($sql);
    37. $num = mysql_num_rows($result);
    38. if ($num!="0") {
    39. $x = $total-$start+1;
    40. while ($row=mysql_fetch_array($result)) {
    41. //weierer Quellcode
    42. }
    Alles anzeigen


    lg
    Dragon
    Riek-Media.com - Webhosting riek-media.com

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Dragon4048 ()

  • Tut mir leid, aba ich war grad zu faul, dass ich mir den Code durchschau.
    Bei mir läuft s auf jeden Fall so ab.
    Die Kommentare sollten es ausreichend erklären

    Quellcode

    1. // Wenn noch keine Seite zum Anzeigen der News ausgewählt wurde -> Seite = 1
    2. if(!isset($_GET['page'])) {
    3. $_GET['page'] = 1;
    4. }
    5. // Wieviele News pro Seite angezeigt werden
    6. $shownews = $settings['Shownews'];
    7. // Gesammtzahl der EInträge in der DB ermitteln
    8. $count = new mysqlv("SELECT ID FROM news;");
    9. $anzahl = $count -> numRows();
    10. $count -> free();
    11. // Nötige Seitenanzahl ermitteln
    12. $pages = ceil($anzahl / $shownews);
    13. // Prüfen ob ...
    14. // ... mehr als 1 Seite vorhanden ist
    15. if($pages > 1) {
    16. // --- mehr als 10 Seiten vorhanden sind
    17. if($pages > 10) { // Wenn mehr als 10 Seiten vorhanden sind
    18. // ... ausgewählte Seite kleiner gleich 5 ist
    19. if($_GET['page'] <= 3) {
    20. $j = 1;
    21. $k = $_GET['page'] + 2;
    22. $shortp = 1; // Nach ausgewählter Seite short
    23. $shortm = 0; // Vor ausgewählter Seite short
    24. // ... ausgewählte Seite größer gleich ($pages-3) ist
    25. }elseif(($pages - 3) <= $_GET['page']) {
    26. $j = $_GET['page'] - 2;
    27. $k = $pages;
    28. $shortp = 0;
    29. $shortm = 1;
    30. // ... ausgewählte Seite genau im mittleren Bereich liegt
    31. }else{
    32. $j = $_GET['page'] - 2;
    33. $k = $_GET['page'] + 2;
    34. $shortp = 1;
    35. $shortm = 1;
    36. }
    37. // ... weniger als 10 Seiten vorhanden sind
    38. }else{
    39. $j = 1;
    40. $k = $pages;
    41. $shortp = 0;
    42. $shortm = 0;
    43. }
    44. // Seitenauswahltext erzeugen
    45. $pagetext = "";
    46. if($shortm) {
    47. $pagetext .= "<a href=\"?show=current&page=1\">1</a> ... ";
    48. }
    49. for($i=$j;$i<=$k;$i++) {
    50. if($_GET['page'] == $i) {
    51. $pagetext .= "<b>".$i."</b>";
    52. }else{
    53. $pagetext .= "<a href=\"?show=current&page=".$i."\">".$i."</a>";
    54. }
    55. if($i!=$k) {
    56. $pagetext .= " ";
    57. }
    58. }
    59. if($shortp) {
    60. $pagetext .= " ... <a href=\"?show=current&page=".$pages."\">".$pages."</a>";
    61. }
    62. }
    63. // Seitenauswahltext in Template einbauen
    64. $show = preg_replace("/\{CONTENT:CURRENT:PAGES\}/", $pagetext, $show);
    65. // Newsbeiträge der aktuellen Seite von DB auslesen
    66. $start = ($_GET['page'] - 1) * $shownews;
    67. $sql = new mysqlv("SELECT * FROM news ORDER BY Timestamp DESC LIMIT ".$start.", ".$shownews.";");
    Alles anzeigen
  • Die links sind richtig jedoch wenn ich auf seite 1 oder 2 oder 3 klicke bleibt er trozdem auf seite 0 und listet nur die ersten 10 user auf wie in der vari festgelegt. er springt quasi nicht weiter zu seite 2 wo dann die nächsten 10 aufgelistet werden.

    ps kannst du das mit der count() methode etwas genauer beschreiben :) Hast mich neugirig gemacht
    Riek-Media.com - Webhosting riek-media.com
  • naja, wenn du die falschen Daten bekommst, dann weil der Select falsch ist. Hast du dir den Select mal ausgegeben?
    echo $sql ?

    Dann würdest du feststellen, dass $start nicht gesetzt wird.

    Quellcode

    1. $start = isset($_GET['start']) ? intval($_GET['start']) : 0;


    Und schon funktioniert es ;)

    Zur COUNT Variante:

    Quellcode

    1. $sql = "SELECT COUNT(kundenID) AS c FROM kic_kunde";
    2. $result = mysql_query($sql);
    3. $row = mysql_fetch_array($result);
    4. $total = $row['c'];