Suche mit mehreren Stichwörtern

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

  • Suche mit mehreren Stichwörtern

    Ich habe folgenden Code, nach dem ich meine Stichwortsuche ausführe:

    PHP-Code:
    $querie=Hans 24;
    $query_elements explode(" ",addslashes($querie));

    for(
    $i=0;$i<count($query_elements);$i++)
    {
        if(
    $sql)
        {
            
    $sql .= " OR"/// oder AND (wie du willst)
        
    }
        
    $sql .= " vorname LIKE '%$query_elements[$i]%'";
    }
    $sql "SELECT * FROM kunden WHERE".$sql
    Wie man anhand dieses Quellcode sehen kann, wird nur die Spalte vorname durchsucht. Was ist wenn ich als erstes das Alter und dann den Vorname eingebe? Dann verläuft die Suche fehlerhaft, da er ja in der Spalte vorname sucht und deshalb keinen Eintrag findet. Wie kann ich dies dynamisch gestalten? Es sollen unterschiedliche Suchabfragen möglich sein, wie z.B. Hans 24 oder Berlin 12345 oder Hans Berlin

    Ich will damit sagen, dass die Suche in mehreren Spalten möglich sein soll.

    Gruss
    Benji

    EDIT:
    php.tags presented by Abraxax
    Zuletzt geändert von Abraxax; 12.06.2003, 11:40.

  • #2
    Re: Suche mit mehreren Stichwörtern

    Original geschrieben von Benji
    PHP-Code:
    $querie=Hans 24
    ist nicht dein ernst, oder?


    zu deinem 'problem':

    zur zeit hast du das feld in dem gesucht werden soll, fest im code verdrahtet,
    PHP-Code:
    $sql .= " vorname LIKE '%$query_elements[$i]%'"
    wenn du dynamisch in unterschiedlichen feldern suchen willst, musst du nicht nur übergeben, was gesucht werden soll, sondern auch in welchem feld.


    wie so etwas gehen könnte, überlegst du dir jetzt aber bitte mal selber.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Problem gelöst

      Problem ist bereits gelöst. Ich habe es wie folgt gemacht:

      PHP-Code:
      $sucharray explode(' ',$search);
      $query "SELECT * FROM kunden WHERE "//Anfang der Abfrage
      for($i=0$i<count($sucharray); $i++)
      {
          
      $query .= "(vorname like '%".$sucharray[$i]."%' OR nachname like '%".$sucharray[$i]."%' OR jahrgang like '%".$sucharray[$i]."%' OR plz like '%".$sucharray[$i]."%' OR ort like '%".$sucharray[$i]."%')";
          if(
      $i<count($sucharray)-1)
          {
              
      $query .= ' AND ';   //Verknüpfung der einzelnen Worte mit UND
          
      }

      Jetzt funktioniert es einwandfrei. Danke für deine Hilfe! :-)

      EDIT:
      php.tags presented by Abraxax
      Zuletzt geändert von Abraxax; 12.06.2003, 16:48.

      Kommentar


      • #4
        @Benji
        gewöhne dir das mal an, php.tags zu verwenden, wenn du deinen code postest. ;
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar

        Lädt...
        X