DB nach mehreren Stichwörtern durchsuchen

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

  • DB nach mehreren Stichwörtern durchsuchen

    Hallo,

    Ich möchte eine Tabelle nach mehreren Stichwörtern durchsuchen. Zuerst wird dazu der Suchstring in ein Array eingelesen. Dann wird mit einer for-Schleife der query zusammengesetzt: Das sieht dann bei mir so aus:

    PHP-Code:
    $sucharray explode(' ',$suchstring); 
    $query "SELECT * FROM dateien WHERE "//Anfang der Abfrage
    for($i=0$i<count($sucharray); $i++)
        {
        
    $query .= "(desc like '%".$sucharray[$i]."%' OR pfad like '%".$sucharray[$i]."%')";
         if(
    $i<count($sucharray)-1)
            {
             
    $query .= ' AND ';   //Verknüpfung der einzelnen Worte mit UND
            
    }
                                    
       }
       
    $conn = @mysql_connect($dbserver,$dbuser,$dbpass); 
    mysql_select_db ("alfakleb_DB1"); 

    if (!
    $conn)
      {
       die (
    "Sorry, Verbindungsaufbau zur Datenbank ist fehlgeschlagen !");
      }
                        
    //..
    //Tabellenkopf...(nicht so wichtig...)
    //...
                        
    $result mysql_query($query$conn); 

    // Ausgabe                  
    while ($ausgabe mysql_fetch_array ($resultMYSQL_ASSOC))
         {
        
    //...
                    //...Daten darstellen..
        
    }
    print 
    "</table>";
    mysql_close ($conn); 
    Die Tabelle in der DB alfakle_DB1 heisst 'dateien' , die zu durchsuchenden Spalten 'desc' und 'pfad'.
    Leider scheint das nicht zu funktionieren. Ich erhalte folgende Fehlermeldung: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in blabalblablab Zeile 223...
    Wenn ich mir den Fehler ein wenig genauer beschreiben lass (mit
    PHP-Code:
    echo mysql_errno() . ": " mysql_error() . "\n"
    erhalte ich folgende Meldung:
    PHP-Code:
    1064You have an error in your SQL syntax near 'desc like '%dsaf%' OR pfad like '%dsaf%')' at line 1 
    ...was stimmt bei meiner Syntax nicht??? ist da ein ', " oder & zuviel?? Der Suchstring sieht dann z.B so aus:
    SELECT * FROM dateien WHERE (desc like '%Ausdruck1%' OR pfad like '%Ausdruck1%') AND (desc like '%Ausdruck2%' OR pfad like '%Ausdruck2%') ... es funktioniert übrigens auch nicht, wenn ich nur einen suchstring übergebe..

    hoffe, es kann mir jemand helfen. Danke.
    mfg
    SKar

    visit http://www.uht-traktor.ch

  • #2
    probier mal das aus:
    http://www.php-resource.de/forum/sho...el+durchsuchen
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      Folgende Wörter sind in MySQL explizit reserviert. Die meisten davon sind in ANSI-SQL92 als Spalten- und / oder Tabellennamen verboten (zum Beispiel group). Einige wenige sind reserviert, weil MySQL sie benötigt und (momentan) einen yacc-Parser benutzt: .....delay_key_write, delete, desc, describe,
      distinct...
      ich weiss nicht obs daran liegt, aber schreib das mal doch lieber irgendwie anders
      meine Projekte bestaunen: http://www.kleiza.de

      Kommentar


      • #4
        Original geschrieben von Campus
        ich weiss nicht obs daran liegt, aber schreib das mal doch lieber irgendwie anders
        Hey super, genau das war es hab jetzt 'desc' in 'descr' geändert, nun funktioniert alles...ist noch komisch, dass ich bisjetzt noch keine Probs damit hatte...tja, werde nun alles abändern, sind ja nur so 5-6 Dateien...

        Vielen Dank für die schnellen Antworten.
        mfg
        SKar

        visit http://www.uht-traktor.ch

        Kommentar

        Lädt...
        X