Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterverarbeitung des SQL Abfrageergebnisses

Einklappen

Neue Werbung 2019

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

  • Weiterverarbeitung des SQL Abfrageergebnisses

    Hallo an alle,

    ich habe ein - oder mehrere - Verständnisproblem/e

    Ich habe eine Suche programmiert, die nach mehreren Suchbegriffen filtert.
    Das Funktioniert soweit.

    pic1.PNG

    Aus Spielerei und weil ich es lernen möchte, wollte ich die Suchbegriffe aufsteigend/absteigend sortieren.
    Den kompletten Inhalt der Tabelle kann ich sortieren.
    Jedoch nicht das Suchergebnis.
    Ich sehe auch den Fehler:
    PHP-Code:
    if(isset($_POST['asc_sort_id']) && !empty($_POST['asc_sort_id']) && $_POST['asc_sort_id']==1)
        {
        
    $statement $pdo->prepare("SELECT * FROM users WHERE
                                        id LIKE :id         AND
                                   vorname LIKE :vorname    AND
                                  nachname LIKE :nachname   AND
                                     email LIKE :email
                                    ORDER BY id ASC
                                    "
    ); 
    Bei SELECT * ... greife ich ja wieder auf die komplette Tabelle zu und nicht auf das Suchergebnis, dass ich schon habe.

    Ich weiß aber nicht, wie ich das Suchergebnis neu abfragen kann?

    Es muss wahrscheinlich in eine Variable oder array zwischengespeichert werden.

    Vielleicht kann mir ja jemand sagen, wie es weitergehen muss und hat ein Beispiel für mich.

    VG, T.





  • #2
    Zitat von TribbleX Beitrag anzeigen
    Bei SELECT * ... greife ich ja wieder auf die komplette Tabelle zu und nicht auf das Suchergebnis, dass ich schon habe.
    Nein. Mit dem »SELECT *« sagst du der Datenbank nur welche Spalten gerne im Ergebnis hättest (wobei das »*« böse[tm] ist, gibt immer die Spalten an die du haben möchtest, auch wenn es alle sind!). Für das Sortieren ist das »ORDER BY id ASC« am Ende zuständig (es werden auch nur die gefundenen Datensätze sortiert) - mir ist aber nicht klar welche Reihenfolge du jetzt gerne hättest (evtl. ein »ORDER BY email«?), momentan sortierst du jedenfalls einfach nach der ID was wenig sinnvoll ist da die ID einzig und alleine dafür da ist einen Datensatz zu identifizieren, zu mehr taugt die nicht.

    Kommentar


    • #3
      Ich werfe mal die Frage in den Raum: Warum die Query neu abfragen?
      Allein zu Verständniszwecken, ok. Aber Du hast immer eine feste Datenmenge in der HTML-Ansicht, die kannst Du doch auch dort sortieren. Ist auch eine gute Übung, nur JavaScript halt, kein SQL oder PHP...
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Kannst du mal dein Formular zeigen, nur HTML

        Kommentar


        • #5
          du sortierst doch schon - nach der ID-Spalte ...du musst deinen SQL-String jetzt halt "getrennt" aufbauen..
          weise ihn erst einer Variablen zu, damit du die Sortierung beeinflussen kannst ...

          PHP-Code:
          if (isset($_POST['asc_sort_id']) && !empty($_POST['asc_sort_id'])) {
              
          $sql="SELECT * FROM users WHERE
                                              id LIKE :id         AND
                                         vorname LIKE :vorname    AND
                                        nachname LIKE :nachname   AND
                                           email LIKE :email
                                          ORDER BY id "
          ;
             if (
          $_POST['asc_sort_id']=="1") {
                
          $sql.="ASC";
             }
             else {
                
          $sql.="DESC";
             } 
             
          statement $pdo->prepare($sql); 
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

          Kommentar

          Lädt...
          X