SQL ungefähr auslesen
Stephan
- php
Hallo,
ich möchte meine SQL-Tabelle Search-Engine auslesen. Normalerweise geht das ja so:
SELECT * FROM Search-Engine WHERE ????????? = $suchbegriff ORDER BY pr
Allerdings, wie mache ich es, dass er in der Spalte Titel und Meta und Kurzbeschreibung nach dem eingegebenen Suchbegriff sucht?
Und wie mache ich es, dass er nicht die anderen Teile des Textes beachtet, sondern nur Wort für Wort, sonst kämen ja kein Ergebnis, wenn ich BLA eingebe, in der Tabelle steht BLA BLI BLUBB.
Danke für die Tipps
Stephan
Hi,
das eine sind die and oder or verkünfpungen in der Where Klausel.
D.h. ..... where spaltea = "Bla" or spalteb="Bla" or Spaltec = "Bla"
Damit Du jedoch ein Teil Deines Strings bekommst, musst Du noch solche Platzhalter wie % einsetzen.
Sprich ..... where spaltea = "%Bla%" or spalteb="%Bla%" or Spaltec = "%Bla%"
Gruss Matze
Vielen Dank!
Stephan
Sorry,
da war noch ein Tipp / Denk fehler anstatt = solltest Du like "%Bla%" schreiben.
Gruss Matze
Ah, Ok, hat romy auch geschrieben...
Stephan
Hi MatzeA,,
Sprich ..... where spaltea = "%Bla%" or spalteb="%Bla%" or Spaltec = "%Bla%"
mit = wirst Du kaum Veränderungen des Suchergebnissen erreichen, LIKE ist der Operator Deiner Wahl.
ciao
romy
Jup, das ist mir beim lesen Deines postings auch grad aufgefallen.
Hi Stephan,
SELECT * FROM Search-Engine WHERE ????????? = $suchbegriff ORDER BY pr
Allerdings, wie mache ich es, dass er in der Spalte Titel und Meta und Kurzbeschreibung nach dem eingegebenen Suchbegriff sucht?
mehrere Sapalten verknüpft man mit logischen Operatoren , in diesem Falle 'or'
Und wie mache ich es, dass er nicht die anderen Teile des Textes beachtet, sondern nur Wort für Wort, sonst kämen ja kein Ergebnis, wenn ich BLA eingebe, in der Tabelle steht BLA BLI BLUBB.
Wenn man Wörter ungefähr suchen will muss man Platzhalter benutzen. Bei den meisten DBMS ist dies das %-Zeichen. Ausserdem ist der Operator LIKE und nicht =
Also konkret:
SELECT * FROM Search-Engine WHERE titel LIKE %$suchbegriff% OR meta LIKE %$suchbegriff% ORDER BY pr
Beachte bitte die gültigen Stringverknüpfungsregeln von PHP
entweder
SELECT * FROM Search-Engine WHERE titel LIKE %{$suchbegriff}% OR meta LIKE %{$suchbegriff}% ORDER BY pr
oder
"SELECT * FROM Search-Engine WHERE titel LIKE %".$suchbegriff."% OR meta LIKE %".$suchbegriff."% ORDER BY pr"
ciao
romy
Klasse, Danke!
Stephan