Mehrere Suchvarianten

  • Hallo zusammen,


    ich arbeite momentan den Kurs PHP für Anfänger durch. Ich wandle das Programm aber immer bisschen ab bzw. versuche Features zu implementieren. Bei einer Sache komme ich jedoch nicht weiter. Es geht um das Gedächtnis des Datenpflegetools. Der Code sieht wie folgt aus

    Code
    1. if ( ! isset($_GET['suchbegriff']) and isset($_SESSION['suchbegriff']) )
    2. {
    3. $_GET['suchbegriff'] = $_SESSION['suchbegriff'];
    4. }
    5. if ( isset($_GET['suchbegriff']) and trim ($_GET['suchbegriff']) != '' )
    6. {
    7. $_SESSION['suchbegriff'] = $_GET['suchbegriff'];
    8. $suchbegriff = trim ($_GET['suchbegriff']);


    Ich verstehe auch was der macht, aber was ist wenn ich einen zweiten Button einfüge, wo ich die gesamten Items aus dem Datenpflegetool anzeigen möchte? Geht das mit einem weiteren Button? Bzw im folgenden seht ihr meine zweite Abfrage. Wie schaffe ich das das Ding merkt, dass ich auf den Button "AlleDatensätze" gedrückt habe und nacheiner Bearbeitung diese auch wieder ausgegeben haben möchte ?


    Code
    1. if ( !isset($_GET['AlleDatensätzen']) and isset($_SESSION['AlleDatensätzen']) and welche weitere Bedingung))
    2. {
    3. $_GET['AlleDatensätzen'] = $_SESSION['AlleDatensätzen'];
    4. }
    5. if (isset($_GET['AlleDatensätzen']))
    6. {
    7. // session_destroy();
    8. $_SESSION['AlleDatensätzen'] = $_GET['AlleDatensätzen'];
    9. echo "<p>Gesucht wird nach:</p>";
    10. echo "";

    Vielen Dank schon mal !

  • Warum willst Du denn die SESSION nutzen?


    Zum "merken" der letzten Abfrage?

    Das kann eine URL auch. Also Statt SESSION, eine GET Variable wie z.B.: "?suchbegriff=abc".


    Und Du nutzt ja schon eine GET var. Also warum die SESSION :)


    BTW: dann wird es auch einfacher.

    Ich würde auch empfehlen, die Eingaben (GET, POST ...) in Variablen zu packen.

    Niemand (also ich jedenfall nicht) liest gerne IFs mit GET ect.

    Am Bsp:


    Wenn jetzt ein 2ter Button reinkommen kann,

    dann checkst Du den genauso.

    Muss halt nur entscheiden, wer prio hat, falls beide (warum auch immer) reinkommen.


    Oder, wenn Du keine Suche reinbekommst, dann kannst Du natürlich auch by default alle ausgeben.

    PHP
    1. if ($suchbegriff !== null) {
    2. // Search by the given string.
    3. } else {
    4. // Search all.
    5. }
  • Danke für die Antwort ! Mit der GET_Variable wird auch gearbeitet. Ich habe nur das Problem, dass ich ich die Datensätze suchen und bearbeiten kann. Sobald ich diesen Datensatz gespeichert bzw. geupdatet habe, springt das Programm wieder zurück auf das erste Formular (auf die Suche). Deshalb habe ich die Session Variable eingebaut. Damit ich wieder zurück auf die gesuchten Datensätze komme.


    Ansonsten hast Recht, dass das ganze über die URL gespeichert wird.

  • Formulardaten per Get zu senden, ist nicht die beste Idee, verwende besser Post.

    Allgemein stimme ich dir da zu, bei einer Suche finde ich aber GET besser. Dann kann man auch z.B. die URL mit der Suchanfrage kopieren oder einfach im Browser wieder eine Seite zurück gehen, was bei POST ja nicht geht (bzw. beim Zurückspringen bekommt man die nervige Meldung ob man das „Forumular” wirklich nochmal abschicken will).

  • GET, wenn Du etwas abfragst, ohne zu verändern

    POST, wenn etwas verändert wird.

    Gibt noch PATCH und PUT ... aber einfach mal im Netz suchen, wenn es interessiert.


    Sensible Daten immer POST (login, ...).

    Suchanfragen GET (z.B. www.[...].de/movie/{id} order www.[...].de/movie?genre=scifi&name_like=abcdef)