Suche nach PHP Funktion

xloouch

Erfahrenes Mitglied
Hallo zusammen

Ich hab ein kleines problem, ich muss ne db durchsuchen, und suche nun nach einer gescheiten Funktion, welche das für mich macht.

Hat jemand irgend so eine Funktion zur Hand und könnte sie mir geben?

Danke für eure Antworten
 
Wenn du eine Antwort erwartest, solltest du deine Frage etwas genauer formulieren.

Was suchst du in der Datenbank?

Ganz allgemein würde ich sonst antworten die gesuchte Funktion heißt mysql_query (...)
 
Es gibt keine PHP Funktion, die eine Datenbank durchsucht. Dafür ist die Anfrage an die Datenbank zuständig, die du, wie bereits erwähnt, mit [phpf]mysql_query[/phpf] abstößt und den zurückgegebenen Result-Handler weiterverarbeitest.
 
ok. gut, in diesem Fall habe ich meine Frage falsch formuliert. sicherlich weiss ich , dass man mit mysql_query() die abfragen formulieren kann..

das problem sieht so aus.

ich habe die datenbank mit etwa 25 tabellen. nun sollte jede spalte der 25 tabellen nach einem bestimmten wort, durchsucht werden. aber in den spalten können mehrere wörter stehen.

wenn der suchvorgang erfolgreich war, sollte mir die funktion die user_id zurückgeben.

ich hoffe, nun ist das problem besser beschrieben.

Danke für die Antworten.
 
Also ich verstehe das jetzt so, dass du eine Freitextsuche über x-Tabellen mit x-Spalten machen möchtest. Das ganze sollte generisch sein, d.h. wenn du eine neue Spalte hinzufügst, soll die auch mit durchsucht werden usw.

Dann solltest du als erstes die Datenbank connecten.
Dann liest du alle Tabellen in der Datenbank mit mysql_list_dbs und mysql_tablename
Das gleiche machst du dann mit den Spaltennamen mysql_list_fields
Ob du das ganze in ein multidimensionales Array reinschreibst oder über Schleifen durchläufst ist Geschmackssache.

Als nächstes generierst du dir anhand der Tabellen- und Feldbeschreibungen ein Query das z.B. so aussieht "Select * from table1 where field1=$suchstr or field2=$suchstr or field3=$suchstr ...."

Das machst du für jede Tabelle. Dann rufst du die Query's hintereinander auf und speicherst halt die Ergebnisse in einem Array. Ich vermute mal, dass es auch mehrere Ergebnisse geben kann?

So würde ich das machen. Wobei ich befürchte, dass die Performance grottenschlecht sein wird.

Zu den einzelnen Funktionen kannst du http://www.selfphp.net/selfphp befragen. Dort findest du den Syntax und Beispiele.
 
Original geschrieben von xloouch
aber in den spalten können mehrere wörter stehen.
Original geschrieben von bfsdasauge
"Select * from table1 where field1=$suchstr or field2=$suchstr or field3=$suchstr ...."
Unter diesen Umständen brauchst Du
PHP:
sql= "Select * from table1 where field1 LIKE '%".$suchstr."%' or field2 LIKE '%".$suchstr."%' or field3 LIKE '%".$suchstr."%' ....";
... und spätestens jetzt ist die Performance restlos im Keller
 
xloouch, bitte halte dich in Zukunft unbedingt an unsere Forenregeln bezüglich einer korrekten Groß-/Kleinschreibung.
 
Zurück