Blätterfunktion geht nicht richtig

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Blätterfunktion geht nicht richtig

    Hallo,

    habe vor einiger Zeit schonmal hier nachgefragt wegen einer Suchfunktion, die nicht richtig funktionieren wollte. Diese funzt jetzt zwar prima, aber meine Blätterfunktion arbeitet nicht so mit der Suchfunktion zusammen. Da ich ein ziemlicher Neuling in Sachen PHP bin und jeden Tag was Neues dazulerne kann mir vielleicht einer von Euch mir nochmal helfen. Hier mein Code:

    echo " <form method=post action='" .$_SERVER['PHP_SELF'] ."'>\n";
    echo "<input class= formular name=suche type=text maxlenght=255 size=20 value='".$_POST['suche']."'>\n";
    echo "<input class= formular type=submit name=Submit value='Senden'>\n</form>";


    $tmp = explode(' ', $_POST['suche']);

    foreach ($tmp as $key => $value) {
    $tmp[$key] = '+' . $value;
    }
    /
    $suche = implode(' ', $tmp);


    $start = 0;
    $step = 5;
    if (isset($_GET["start"])) {
    $start = $_GET["start"];
    }



    mysql_connect("xyz.de", "xyz", "xyz");
    mysql_select_db("xyz");
    $sql1 = "SELECT * from `Adressverzeichnis` WHERE MATCH (Name,Vorname) AGAINST ('+$suche')";
    $sql2 = "SELECT * from `Adressverzeichnis` WHERE MATCH (Name,Vorname) AGAINST ('+$suche') LIMIT $start, $step";
    $result1 = mysql_query($sql1);
    $zeilen = mysql_num_rows($result1);
    $result2 = mysql_query($sql2);

    echo "<br><br>";

    echo "<table width=400 height=30 align=center cellpadding=10 cellspacing=10>" . "<tr>" . "<td>" . "<b>$zeilen Einträge gefunden:</b></td></tr></table><br><br>";
    for ($i=0;$zeilen>$i;$i=$i+$step) {
    $anf=$i+1;
    $end=$i+$step;
    if ($end>$zeilen) {
    $end=$zeilen;
    }
    if ($anf==$end) {
    echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ]" . "&nbsp;&nbsp;";
    }

    else {

    echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ]" . "&nbsp;&nbsp;";
    }
    }
    while ($row = mysql_fetch_assoc($result2))
    {


    Habe nämlich die Problematik, dass zwar nach eingegebenem Suchbegriff bei den Links der Blätterfunktion die richtige Anzahl an Suchergebnissen angezeigt wird (zB. 1-5, 6-10 usw.). Wenn ich aber dann z.B. von Seite 1 auf Seite 7 gehen will und 6-10 anklicke, werden auf dieser Seite dann keine Ergebnisse mehr angezeigt und es wird grundsätzlich 0 Ergebnisse angezeigt.
    Das heisst, er zählt immer nur auf der ersten Seite richtig. Es muss wohl mit der Suchfunktion zusammenhängen, da vorher das Zählen und die Blätterfunktion eindeutig gingen. Vielleicht kennt jemand das Phänomen und kann mir dabei helfen?!
    Das wäre echt super, als Anfänger steht man ja immer wieder vor irgendwelchen Problemen, grrrr...

  • #2
    Du wirst dein $_POST['suche'] an die nachfolgenden Seiten übergeben müssen!!

    Mögliche Varianten:
    Als zusätzliche GET Parameter
    In $_SESSION zwischenlagern
    In einem Cookie
    Ein Formular für die Blättern-Buttons nutzen
    Wir werden alle sterben

    Kommentar


    • #3
      Danke für Deine Antwort, aber da ich, wie gesagt, noch nicht so firm in PHP bin, habe ich leider nur begrenzt verstanden. Wie würde denn sowas als Beispiel aussehen? Dann könnte ich damit evtl. etwas mehr anfangen....

      Kommentar


      • #4
        In $_SESSION zwischenlagern
        siehe: http://www.technischedaten.de/pmwiki...essionHandling
        Wir werden alle sterben

        Kommentar


        • #5
          Sorry, habe noch nicht mit Sessions gearbeitet bisher, bin Anfänger...
          wie soll ich denn mein $_POST['suche'] in einer $_Session zwischenlagern. Ich google und probiere schon den ganzen Tag rum, aber egal, was ich probiere, es funzt einfach nicht...
          Habe auch schön artig session_start(); gesetzt, aber irgendwie weiss ich nicht genau, an welche Stelle ich die Session setzen soll.
          Wohlbemerkt ist Formular und Auswertunf alles eine Seite, falls das irgendwie wichtig sein sollte...
          Sorry nochmal für diese dämlichen Anfängerfragen, aber jeder hat mal klein angefangen...

          Kommentar


          • #6
            folgendes ist doch am einfachsten:

            falsch, bisher:
            echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$end</a> ]"
            echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i\">$anf-$end</a> ]" . " ";

            richtig:
            echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$suche\">$end</a> ]"
            echo "[ <a href=\"$_SERVER[PHP_SELF]?start=$i&suche=$suche\">$anf-$end</a> ]" . " ";

            Kommentar


            • #7
              Original geschrieben von Sphinx0402
              Danke für Deine Antwort, aber da ich, wie gesagt, noch nicht so firm in PHP bin,
              Das nicht-firm-sein bezieht sich auf Programmlogik und -denkweise, nicht auf php....

              Kommentar


              • #8
                http://tut.php-q.net/sessions.html

                Kommentar


                • #9
                  danke für die prompte antwort, aber es funzt leider nicht, nach wie vor zeigt er die erste ergebnisseite an, aber wenn ich dann auf die nächste ergebnisseite weitergehe, zeigt er wieder 0 ergebnisse an und im browser zeigt er folgendes:
                  http://www.xyz.de/blabla/adressen3.p...e=+suchbegriff

                  vielleicht fehlt mir ja tatsächlich der sinn für die logik, aber ich kann auch besser begreifen, wenn ich etwas vor mir sehe, oder wie man so schön sagt:
                  learning by doing
                  ist ja nicht so, dass ich nicht bücher und google und suchfunktionen zum lernen nutze, einiges will eben funtzen und anderes leider nicht...arrgh

                  Kommentar


                  • #10
                    Du musst nicht nur den start, sondern auch den suchbegriff an die Blätterseite weitergeben. Dort wo $start weitergegeben wird, muss auch $suche mitgegeben werden.
                    Die Suche wird bei jedem Blättern wiederholt, aber es werden jeweils nur $start,$anzahl ausgegeben.

                    Das weitergeben von $suche kann auf mehrere Arten geschehen, meine Art, nach dem ? ist intellektuell die einfachste.


                    mit &suche=+suchbegriff bist der Wahrheit schon ziemlich nahe: Gehirn einschalten!!

                    Kommentar


                    • #11
                      Original geschrieben von Sphinx0402
                      danke für die prompte antwort, aber es funzt leider nicht, nach wie vor zeigt er die erste ergebnisseite an, aber wenn ich dann auf die nächste ergebnisseite weitergehe, zeigt er wieder 0 ergebnisse an und im browser zeigt er folgendes:
                      Da du nicht angibst, wie der nicht funktionierende Quelltext heisst, nehme ich mal an, es sei etwa folgendes wie schon gestern:

                      PHP-Code:
                      Da steh ich nunich armer Tor!
                      Und bin so klug als wie zuvor;
                      Heiße Magisterheiße Doktor gar
                      Und ziehe schon an 
                      die zehen Jahr
                      Herauf
                      herab und quer und krumm
                      Meine Schüler an der Nase herum
                      -
                      Und sehedaß wir nichts wissen können

                      und es ist völlig logisch, dass mit so einem Quelltext nicht von selber geblättert werden kann.

                      Kommentar


                      • #12
                        lektüre: Ich habe eine Tabelle mit n Einträgen und möchte auf jeder Seite m davon anzeigen
                        habs gerade mal überflogen, register_globals müssen on sein, aber zumindest sollte es das prinzip verdeutlichen und leicht durch $_GET umzuschreiben sein.

                        Kommentar


                        • #13
                          Okay...ich gebs auf...egal wie ichs mache, es funktioniert einfach nicht, auch nicht so, wie du es geschrieben hast, auch wenn ich deine andeutungen nachvollziehe, auch ohne + gehts nicht, mit nicht, ohne suche=, mit suche=, soviel code ist ja nicht da, an dem ich irgendwas übersehen könnte. muss ich wohl zu meinem auftragsgeber gehen und sagen, dass ich zu blöd dafür bin...
                          aber danke für deine tipps

                          Kommentar


                          • #14
                            den geposteten scripttext hast Du wohl nicht selber geschrieben. Woher das nach dem suche= usw. kommt kannst Du deshalb auch hier nicht schreiben, wo das + hingehört auch nicht usw.. wenigstens hast Du die smilies begriffen.

                            Kommentar


                            • #15
                              Original geschrieben von jhaase .. wenigstens hast Du die smilies begriffen.
                              *g*

                              aber ein ehrliches resümee ist dabei herausgekommen: "muss ich wohl zu meinem auftragsgeber gehen und sagen, dass ich zu blöd dafür bin... "

                              Kommentar

                              Lädt...
                              X