+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 15 von 23

Thema: Datensatznavigation PHP/MYSQL

  1. #1
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881

    Datensatznavigation PHP/MYSQL

    Hallo TP'ler,

    habe in der Suche leider nichts gefunden.
    Habe folgendes Problem:
    Habe eine BildDB und lasse mir dort mit limit die gefundenen Datensätze auf mehreren Seiten anzeigen, funzt auch alles!

    Jetzt möchte ich aber, dass mir in meiner Navigation nicht alle Seiten auf einmal angezeigt werden, sondern wenn ich z.B. 50 ergebnisseiten habe, dann sollen nur erstmal 10 Seiten angezeigt werden (wie man das von Google kennt).

    Seitenzahlennavi und dynamische Vor- und Zurück Buttons funzen, verstehe nur nicht, wie ich jetzt diese Seitenzahlen unterteile und dynamisch die nächsten einblende, sei es in Einer- oder Zehnerschritten!

    Benutze Adagios Skript aus diesem Thread

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

  2. #2
    TP-Specialist Flixxtoras macht alles soweit korrekt
    Registriert seit
    May 2001
    Beiträge
    2.497
    Endlich das Thema liegt mir auch noch im Magen.
    Deswegen wäre mir eine Antwort auch sehr recht.

  3. #3
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Ich gehe mal davon aus, dass bei Deinem Kenntnistand ausreicht, die blanke Theorie aufzuführen:
    • Du ermittelst die Gesamtzahl aller auszugebenen Datensätze (z.B. mit mysql_affected_rows())
    • Diese Zahl teilst Du durch die gewünschte Zahl von Einträgen pro Seite; hier muss natürlich mit Modulo/Restwert (%) gearbeitet werden, damit bei nicht genau aufeghenden Divisionen der Rest auf die letzte Seite verteilt wird
    • Dann kannst Du ganz einfach in einer Schleife die Links erzeugen lassen, die Werte für LIMIT ergeben sich ja aus obiger Rechnung

    Ich habe da auch noch was passendes gegoogelt: http://www.php-center.de/artikel/blaettern.php3
    Geändert von Lars (09.09.2002 um 10:43 Uhr)

  4. #4
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    Danke Lars,

    aber die Seitenzahlennavi funzt, dass Problem bleibt aber!

    Möchte, wenn ich z.B. ein Ergebnis mit 100 Seiten habe, dass erstmal nur 10 in der Navi angezeigt werden, beim weiterblättern sollen dann nach und nach die anderen Seiten dazu kommen.

    Hoffe, dass ich es jetzt unmissverständlich ausgedrückt habe!

    Erst:

    100 Ergebnisseiten
    1 2 3 4 5 6 7 8 9 10 >> >

    Dann beim weiterblättern:

    2 3 4 5 6 7 8 9 10 11 >> > usw...

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

  5. #5
    TP-Specialist Flixxtoras macht alles soweit korrekt
    Registriert seit
    May 2001
    Beiträge
    2.497

    Verständigungsproblem

    Hallo Lars ich glaube du hast unsere Frage nicht ganz richtig verstanden. Wir haben bereits das Blätterscript und es funktioniert auch. Zum bessern Verständniss nochmal bei Bild.



    Es gibt manchmal einfach zuviele Seitenzahlen wie bei mir hier:


  6. #6
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Huch, da habe ich wohl was verpeilt ...

    Eine Lösung habe ich ad hoc nicht auf Lager, aber vielleicht kommt mir die Erleuchtung ja noch.

  7. #7
    TP-Member taratus macht alles soweit korrekt Avatar von taratus
    Registriert seit
    Sep 2002
    Ort
    Berlin
    Beiträge
    46
    hier die erforderlichen Änderung für die Schleife "Seitenzahlen":


    $cut_left=5; // Anzahl Seiten-Links links von aktueller Seite
    $cut_right=5; // Anzahl Seiten-Links rechts von aktueller Seite

    $a=1;
    $a_end=$anz_pages;

    if($anz_pages>($cut_left+$cut_right)) {
    if($curr_page>$cut_left) $a=$curr_page-$cut_left;
    if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
    }

    for($a;$a<=$a_end;$a++)
    {
    if($a != $curr_page)
    { ?>&nbsp;<a class="cmsnavi" href="../news/?limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
    }
    else
    {
    echo "&nbsp;[".($a)."]";
    }
    }

    Achtung:

    nicht nur die Schleife selbst habe ich geändert, sondern auch
    neue Variablen eingebaut. Die müssen nartürlich mitkopiert werden und dürfen noch nicht in Eurem Script existieren!

    taratus

  8. #8
    TP-Specialist Flixxtoras macht alles soweit korrekt
    Registriert seit
    May 2001
    Beiträge
    2.497
    Vielen Dank bei mir klappt alles.
    Genau das was ich schon lange gesucht habe.

  9. #9
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    Ja, auch bei mir funzt es einwandfrei!

    Vielen Dank !

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

  10. #10
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Auch ich habe den Dreh nun raus - Danke!

  11. #11
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    Sorry, ist ja eigentlich schon erledigt, habe aber nun doch ein kleines Problem!

    Und ich seh,wie immer, den Fehler nich.

    Skript und Seitenanzeige funzen, aber irgendwo scheint es ein Rechenproblem zu geben. Auf der ersten Ergebnisseite werden die Klammern um Seite 1 nicht gesetzt, scheint ein Problem mit der if Abfrage zu sein und bei meinen beiden letzten Ergebnisseiten wird der Überhang falsch ausgerechnet bzw. falsch angezeigt.

    Zur Verdeutlichung:

    Habe 87 Datensätze auf 18 Seiten.
    $eintraege=5
    Bisher alles OK, navigier jedoch auf Seite 17, kriege ich nur 2 Einträge angezeigt und Seite 18 enthält gar keine Einträge.
    Dazu wird auch noch der vor Button auf Seite 17 schon ausgeblendet.

    Hier nochmal der Code:

    $cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
    $cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite

    $a=1;
    $a_end=$anz_pages;

    if($anz_pages>($cut_left+$cut_right)) {
    if($curr_page>$cut_left) $a=$curr_page-$cut_left;
    if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
    }

    for($a;$a<=$a_end;$a++)
    {
    if($a != $curr_page)
    { ?> <a class="cmsnavi" href="bildsuche.php?action=1<?php If ($suchort_auswahl != "") {echo"&suchort=".$suchort_auswahl;} ?><?php If ($suchthema_auswahl != "") {echo"&suchthema=".$suchthema_auswahl;} ?>&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a); ?></a><?php
    }
    else
    {
    echo " [".($a)."]";
    }
    }?>

    Hoffe, dass jemand den Fehler entdecken kann, ich kann den Fehler nicht finden!

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

  12. #12
    TP-Specialist Flixxtoras macht alles soweit korrekt
    Registriert seit
    May 2001
    Beiträge
    2.497
    Wo Chris es sagt bei mir ist es auch so.
    Es muss wirklich am "$a" liegen. Zummal Seite 1 bei mir mit den Limit 10 (Einträge pro Seite) beginn anstatt bei 0 deswegen am Ende auch der Überhang.

  13. #13
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    @ Flixxtoras

    Habe das Problem gelöst, bei mir funzt es jetzt auf jeden Fall!

    Folgendes habe ich verändert:

    <?php
    $cut_left=1; // Anzahl Seiten-Links links von aktueller Seite
    $cut_right=8; // Anzahl Seiten-Links rechts von aktueller Seite

    $a=0;
    $a_end=$anz_pages;

    if($anz_pages>($cut_left+$cut_right)) {
    if($curr_page>$cut_left) $a=$curr_page-$cut_left;
    if(($curr_page+$cut_right)<$anz_pages) $a_end=$curr_page+$cut_right;
    }

    for($a;$a<$a_end;$a++)
    {
    if($a != $curr_page)

    { ?> <a class="cmsnavi" href="bildsuche.php?action=1&limit=<?php echo ($a*$eintraege); ?>"><?php echo ($a+1); ?></a><?php
    }
    else
    {
    echo " [".($a+1)."]";
    }
    }?>


    $a fängt jetzt bei 0 an zu zählen!

    Dann muss $a allerdings innerhalb if else jeweils plus 1 gesetzt werden!

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

  14. #14
    TP-Specialist Flixxtoras macht alles soweit korrekt
    Registriert seit
    May 2001
    Beiträge
    2.497
    Klappt hatt $a auch schon auf 0 gesetzt allerdings das mit $a +1 vergessen.

    Trotzdem hab ich bei 115 Ergebnisseiten 116.
    Die 116. Seite ist aber leer.

    Zum visuellen Verständnis:


  15. #15
    TP-Insider freefonzo macht alles soweit korrekt Avatar von freefonzo
    Registriert seit
    May 2002
    Ort
    Colonia
    Beiträge
    881
    Dann solltest Du das $limit beim ersten Aufruf auf 0 setzen, z.B.:

    <? If ($limit=="") { echo"<input type='hidden' name='limit' value='0'>";}

    Danach hatte ich keinen Überhang mehr und auch keine leeren Seiten!

    Check einfach mal, ob Deine Seite 1 bei limit 0 oder > anfängt!

    Gruss

    Chris
    Gruss freefonzo

    "Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat."
    Sir Winston Churchill

    1. lesen || 2. suchen || 3. posten || 4. Traum Scripts einbauen || 5. So sehen also TP'ler aus ?

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51