Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hey,

ich hab momentan ein etwas kniffliges Problem. Und zwar hab ich eine Suchfunktion programmiert, die ganz simple eine Datenbank nach allen möglichen Treffern durchsucht. Etwa so was:

$sql = "SELECT * FROM table WHERE (name LIKE '%KEY%') or (city LIKE '%KEY')";

Naja wie auch immer. Gehen wir davon aus das ich in meiner Tabelle 5 Datensätze hab, etwa so:

Name City

chris | Berlin

tobi | Berlin

andi | Karlsruhe

stefi | Berliner

caty | Broberlin

Eine Suche nach "berlin" würde mir demnach 4 Treffer bringen. Nun möcht ich, das in der Ausgabe immer, der Datensatz, wo der Suchbegriff mit beginnt, immer zu erst kommt und dann die anderen Datensätzen, bei denen der Suchbegriff im Text steht.

Also das die Ausgabe der Ergebnisse immer so aussieht:

Chris | Berlin

Tobi | Berlin

Stefi | Berliner

....

Caty | Broberlin

Hinweis: Die eigentliche DB umfasst mehrere Zigtausend Datensätze und hat deutlich komplexere Relationen als meine 2 Spalten hier ^^

Ich hoffe ich konnte mein Problem gut erklären und danke schon jetzt für eure Ideen.

mit freundlichen grüßen

Geschrieben

Vielen Dank schon mal für die Antwort, für mein gepostetes Beispiel funktioniert das wohl sicher. Alle Berlin Einträge würden dann oben stehen, aller dings würde dann ein Oberlin auch vor einem Berlinale stehen...

Ich hab jetzt eine Lösung gefunden, nicht sehr elegant aber es funktioniert wohl. Zunächst eine Abfrage die alle Datensätze erfasst die genau mit dem Such wort anfangen

$sql = "SELECT * FROM table WHERE city LIKE 'KEY%'";

und anschließend eine abfrage die alles außer das obere nimmt

$sql = "SELECT * FROM table WHERE city LIKE '%KEY%' AND city NOT LIKE 'KEY%'

Dann merge ich die die Array und gut... Naja für de Anfang ist es erst mal eine Lösung aber naja. Noch jmd andere Ideen?!

Geschrieben

Mhh also mir jetzt nen eigens für dieses Problem nen Sortieralghoritmus zu schreiben ?! Bisschen viel overhead, findest du nicht :P

Ich kann mir net vorstellen, das ich der einzigste mit diesem Problem bin ^^

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...