Hallo Leute,
ich bin grade dabei eine Suchfunktion zu programmieren. Ich habe eine Datenbank mit ganz vielen Produktnamen die zum Teil aus mehr als einem Wort bestehen. Gibt es einen einfachen Weg, z.B. über SQL nach Teilen zu suchen die in dem Produktnamen vorkommen?
Ich habe auch schon eine Idee, ich weiß aber nicht ob das eine gute Lösung ist:
SELECT * FROM tbl_produkte
WHERE p_name LIKE '%".$_POST["suchewort"]."%';
Seite 1 von 1
Such Mit Php Oder Sql
Anzeige
#3
geschrieben 15. September 2005 - 11:59
du solltest nicht einfach so $_POST als suchwort in der sql-abfrage verwenden. du kannst dir sicher vorstellen was passiert wenn ich als suchwort "'; DELETE FROM tabelle WHERE 1; #" übergebe. dann ist die datenbank ruck-zuck leer. also niemals einfach ungeprüft variablen vom benutzer verwenden.
#4
geschrieben 15. September 2005 - 13:47
"SELECT * FROM tbl_produkte WHERE p_name LIKE '".mysql_real_escape_string(trim($_POST["suchewort"]))."'";
So ist es wesentlich sicherer und besser zu empfehlen für eine solche Abfrage
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.
(Konfuzius)
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.
(Konfuzius)
#6
geschrieben 19. September 2005 - 14:46
Je nachdem um wieviele Datensätze es sich handelt ist ein %...% nicht zu empfehlen. Bedeutend performanter ist ...%, also nur wildcard am Ende des Namens... aber naja, kommt auf die Menge der Daten an
#7
geschrieben 20. September 2005 - 09:56
Hmm sind nur ein paar hundert glaube ich.
Also das dauert nicht mal ne halbe Sekunde, denke ich bin zufrieden^^
Also das dauert nicht mal ne halbe Sekunde, denke ich bin zufrieden^^
- ← [xhtml 1.1] Imagemap W3c Konform Erstellen?!
- Skript/Web-Programmierung
- Per Batch Ordner Vergleichen Auf Fehlende Dateien →
Thema verteilen:
Seite 1 von 1