Suchfunktion mit Blättern jedes Mal neu laden

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

  • Suchfunktion mit Blättern jedes Mal neu laden

    Hallo Zusammen

    Eigentlich bin ich absoluter PHP-Neuling. Trotzdem muss ich schon jetzt eine Benutzeroberfläche erstellen, bei der eine Suchfunktion (in einer Datenbank) mit Blätterfunktion integriert werden muss. Zuerst habe ich nur die Blätterfunktion eingebettet, das hat einwandfrei funktioniert. Danach habe ich die Suchfunktion hinzugefügt - das Suchen funktioniert einwandfrei, die Einträge werden auch - wie gewollt - auf 10 Einträge pro Seite limitiert. Aber wenn ich nun blättere, zeigt es mir zuerst eine leere Seite an. Wenn ich dann nochmal auf Suchen klicke, erst dann kommen die darauffolgenden nächsten 10 Einträge.

    Hier der Code für's blättern, stimmt hier etwas nicht?

    PHP-Code:
    // Formular.- und Blätterfunktion
     
    echo '<form action="' $_SERVER["SCRIPT_NAME"] . '" method="GET" autocomplete="off">' .
           ((
    $AktuelleSeite 1) > ?
           
    '<a href="?seite=' . ($AktuelleSeite 1) . '">&laquo;</a>' :
           
    ' &laquo;') .
           
    ' <label>Seite <input type="text" value="' $AktuelleSeite '" name="seite" size="1"
           title="Seitenzahl eingeben und Eingabetaste betätigen"> von ' 
    $Seitenanzahl '</label>' .
           ((
    $AktuelleSeite 1) <= $Seitenanzahl ?
           
    ' <a href="?seite=' . ($AktuelleSeite 1) . '">&raquo;</a>' :
           
    ' &raquo;') .
           
    '</form>'
    $AktuelleSeite und $Seitenanzahl werden im oberen Teil des Codes definiert. Wir arbeiten hier mit PDO und MSSQL, falls das von Wichtigkeit ist :-)

    Danke schon jetzt für eine Hilfe von euch!
    Bei Google kam ich leider nicht weiter :-(

    Liebe Grüsse

  • #2
    Zitat von e_allora Beitrag anzeigen
    Hier der Code für's blättern, stimmt hier etwas nicht?
    Du vermischst in diesem Teilstück Abläufe, die besser getrennt gehören: speziell das Einlesen und Validieren von Benutzereingaben (wie $_SERVER['SCRIPT_NAME']) mit dem Erzeugen von Ausgaben aus verarbeiteten Daten. Dadurch erschwerst du dir (u. A.) die Fehlersuche.

    ...Aber wenn ich nun blättere, zeigt es mir zuerst eine leere Seite an. Wenn ich dann nochmal auf Suchen klicke, erst dann kommen die darauffolgenden nächsten 10 Einträge.
    Du hast Berechnungen und bedingte Verzweigungen (mit dem ?:-Operator) eingebaut. Lege die vor den Code-Teil, der das Ergebnis zu HTML zusammensetzt. Dann kannst du dir zur Probe die Ergebnisse der Berechnungen und die Verzweigungsbedingungen per var_dump() ausgeben lassen. Findest du darin unerwartete Werte, bist du der Lösung einen Schritt nähergekommen. Beispielsweise sollte $AktuelleSeite innerhalb eines bestimmten Wertebereichs liegen (vermutlich: 1...PHP_INT_MAX, kein 0, kein NULL, kein FALSE, kein '' usw.)

    Du solltest dir auch mal den HTML-Quelltext in seiner Rohfassung anschauen. Manchmal steht da etwas, was in der herkömmlichen Browserdarstellung als scheinbar "leere" Seite daherkommt.

    $AktuelleSeite und $Seitenanzahl werden im oberen Teil des Codes definiert.
    Lass sie dir vor dem Abarbeiten des hier veröffentlichten Teilstücks anzeigen.

    Wir arbeiten hier mit PDO und MSSQL, falls das von Wichtigkeit ist :-)
    Derzeit nicht. Ich sehe weder PDO- noch MSSQL-spezifischen Code.
    Zuletzt geändert von fireweasel; 04.08.2015, 10:51. Grund: sch*#ß Smiley-Fehlerkennung ...
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar


    • #3
      Besten Dank für deine Antwort und Bemühungen, fireweasel :-)
      Vermutlich habe ich mich auch etwas zu kurz gehalten mit den Codes, weil ich in den Forenregeln gelesen habe, man soll nicht einfach alles reinkopieren...

      Letztendlich hatte ich im obersten Teil meines Codes die Suchabfrage und danach einen Befehl:
      PHP-Code:
      if (isset($_POST[btn_umnst_search])) 
      in diesem hatte ich einen try wo die Verbindung zur Datenbank aufgebaut und alles mit den Datensätzen geregelt wurde. Und darin eine foreach-Schlaufe für die tabellarische Anzeige der Daten.

      Am Ende des Codes wurde mit dem Klick auf "weiter" nur die Suche nochmal abgerufen, aber der Rest wurde nicht nochmal durchlaufen.

      Mit diesem Zusatz hier funktioniert es nun:
      PHP-Code:
      if (isset($_POST[btn_umnst_search]) OR isset($_GET["seite"])) 
      Dankeschön, deine Punkte werde ich mir noch genauer anschauen!
      Grüsse

      Kommentar

      Lädt...
      X