like mysql befehl
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
beispiel
datenfeld
eintrag
folgende namen
funktion
hans
hansa
hanswurst
inhalt
lufthansa
manual
meinst
order
reihenfolge
statement
stehen
tabelle
vergleich
zeile
-
$su = "hans wurst";
$abfrage = "SELECT *
FROM `such`
WHERE `lol` LIKE '%$su%'";
ich habe in der Tabelle unter lol einmal hans futter wurst otto und einmal hans stehen aber hans futter wurde fr?her eingegeben.
Mein Problem:
Da hans vor hans wurst eingegeben wurde wird es fr?her angezeigt aber hans wurst otto hat mehr ?hnlichkeit mit $su wie kann ich machen das es der ?hnlichkeit nach runter ausgeben! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich bin ein klein wenig verwirrt. K?nntest du mal bitte genauer beschreiben, was du meinst? Oder noch besser, was du erreichen willst?
Der Suchstring hei?t $su = 'hans wurst'.
Dein LIKE-Statement findet also alle Datenfelder, deren Inhalt '%hans wurst%' enth?lt. Die Reihenfolge, in der die Datenfelder dabei ausgegeben werden, hat normalerweise nichts mit der Reihenfolge des Eintrags in die DB-Tabelle zu tun. Das macht eine gute Datenbank v?llig willk?rlich.
Wenn du die Ergebnisse nach "?hnlichkeit" sortieren willst, kann ich dir zumindest mit MySQL-Statements nicht weiterhelfen. Aber es gibt PHP-Funktionen zum String-?hnlichkeits-Vergleich.
http://de.php.net/manual/de/function.similar-text.php
Du kannst also alle Datenfelder aus der Tabelle holen und diese dann mit similar_text() vergleichen, oder eine Array-Sortierfunktion dazu benutzen (http://de.php.net/manual/de/function.usort.php). usort() kann man eine Vergleichsfunktion ?bergeben (z.B. similar_text), um nach ?hnlichkeit zu sortieren.
MfG
alopex -
danke auch wenn du mich nicht verstanden hast das was du mir gesagt hast ist aber:
Wie kann ich etwas der Gr??e nach ausgeben? -
also ein idielleres beispiel h?ttest du echt nicht w?hlen k?nnen... is echt kein wunder, wenn das niemand wirklich versteht...
z.t.
die php funktion wird bei dir am wahrscheinlichsten die richtige sein. ein mysql befehl kenn ich auch nich, der dann die gefundenen werte nach "treffererfolg" sortiert.
was meinst du mit "wie kann ich etwas der gr??e nach ausgeben" ?
in mysql geht das so (falls du das meinst).
$abfrage = "SELECT * FROM `such` WHERE `lol` LIKE '%$su%' ORDER BY time DESC";
somit gibst du die ergebniss ab oder aufsteigend nach dem inhalt der zeile time in deiner db aus.
mit ASC anstatt DESC dann genau andersherum, ab oder aufsteigend....
mfg -
Genau das will ich das ist super
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage