Textsearch in einer Tabelle wo 3 SPalten durchsucht werden

kne

Mitglied
Hallo.

Ich bin gerade dabei, eine Textsearch zu bastelen. Das heisst ich gebe irgendeinen Text, in ein Textfeld ein, und drücke dann einen Button, und dann wird in 3 Spalten der Tabelle abgesucht.

Bisher mach ich es so, dass, was ich eingebe, das wird in Array's gesetzt, mit hilfe von explode() , und zwar getrennt mit einem Leerzeichen.
Also : "Dies is ein Suchtext"
Dann siehst so aus :
Dies
ist
ein
Suchtext.

Nun weiss ich nicht wie ich die Query machen soll, oder wie ich mich anlegen muss zum durchsuchen. Bisher habe ich eine Schleife. Die das array durchläuft und dann die einzelnen Wörter irgendwie testen.

Dies sind einige Zeilen aus dem Script, damit verstanden wird was gemeint ist.

PHP:
$Text=$_POST['txtSearch'];
$Table=array();
$Table=explode(" ",$Text);
$Groesse=count($Table);
 for ($i=0;$i<=$Groesse;$i++){
 
Aber wo liegt das Problem, falls du eine Volltextsuche mit MySQL realisieren willst, dann solltest du dir mal diese Seiten anschauen htttp://dev.mysql.com/doc/refman/4.0/de/fulltext-search.html

kne hat gesagt.:
PHP:
$Text=$_POST['txtSearch'];
$Table=array();
$Table=explode(" ",$Text);
$Groesse=count($Table);
 for ($i=0;$i<=$Groesse;$i++){
Übrigens, das kannst du auch mit foreach kürzer schreiben ;-]
 
Das Problem liegt dabei.
Dass in allen 3 Spalten abgesucht wird.
die Spalten heissen : MARK , KAROSSERIE, SEGMENT

Unabhängig was ich im textfeld eingebe, wird in denen 3 Spalten abgesucht.
Ich weiss halt nicht wie ich das basteln soll.

Und nachher wird das Ergebnis ja auch angezeigt,.
 
Ja aber wo liegt das Problem, willst du nund, das in allen drei Spalten gesucht wird, oder nur in einer?

Um dir helfen zu können solltest du auch mal deinen SQL-Query posten
 
birnkammer hat gesagt.:
Ja das auch, aber der Query ist den Befehl den du an den MySQL-Server schickst

höh?
PHP:
$query2="Select * FROM Autos where 1=1";

Er muss ja die ganze Tabelle nehmen, der Resultate wegen. Aber suchen macht er doch nur in 3 Spalten.

Nachher mach ich ja dann

PHP:
while ($zeile=mysql_fetch_assoc($rst))  {

Und dann kann ich die Zeile ja mit
PHP:
$zeile['MARK']

Abrufen?!
 
Versuchs mal so:
PHP:
$query2="Select * FROM `Autos` WHERE `MARK` LIKE '".$search."'  , `KAROSSERIE` LIKE '".$search."', `SEGMENT` '".$search."'";
 
Hallo
Wenn das so einfach wäre , dann hätte ich das sicher schon, danke trotzdem :)

Das Problem ist das, dass der Benutzer eingeben kann in die Textbox was er will. Die Eingaben, dann anhand der Leerzeichen getrennt wird, und in ein Array gesetzt werden.
Das sind dann die Keywords.
Dann müssen die 3Spalten mit allen Keywords abgesucht werden, und es sollen keine Duplikate entstehen.
Das heisst gibt der Benutzer :
Audi A4 ein.
Sollen alle Audi A4 nachher genommen werden, und nicht zuerst alles Audi's und dann alle A4. Dann bekomm ich ja zuviele Resultate.
 
Zurück