Hi Sebastian,
Der einfachste Algorithmus ist „Direct Search“.
Das könnte z.B so aussehen. (Source in C)
Aufruf:
if(enthalten(suchargument)
{
...
}
int enthalten (suchargument) {
int i,j;
int p\_size = strlen(suchargument);
for (i=0; i
Dieser Algorithmus ist allerdings performancemässig alles andere als optimal. Wenn Du grössere Datenmengen durchsuchen musst gibt es besser (z.b. Boyer-Moore).
Eine Frage die sich mir aufdrängt:
Wo sind die Daten gespeichert? Wenn Du eine Datenbank verwendest, kannst Du die Abfrage darauf machen und das Suchen entfällt.
Gruss Simon
> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>
Eine Frage die sich mir aufdrängt:
Wo sind die Daten gespeichert? Wenn Du eine Datenbank
verwendest, kannst Du die Abfrage darauf machen und das Suchen
entfällt.
Hab das in einer MYSQL Datenbank…
Bräuchte den Code unter PHP ?? Wie mach ich das mit der Datenbank dass er auch Herr Mayer ausgibt wenn ich nach may such ??
Die Abfrage würde in etwa so aussehen:
select * from xy where name like ‚May%‘
Am Besten wird es sein, wenn Du dich mal intensiver mit SQL auseinander setzt, da dies doch zu den grundlegenden Dingen der Datenbank-Programmierung gehört: http://www.mysql.com/documentation/mysql/commented/
Gruss
Simon
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Nein gibt es leider nicht.
Bei Feldern welche Gross- und Kleinschreibung beinhalten und auch danach gesucht werden kann, habe ich immer folgende Lösung angewendet:
Ein zusätzliches Feld in DB einfügen (z.B. suchname)
im Feld name den Namen normal abspeichern
im Feld suchname alle Kleinbuchstaben durch Grossbuchstaben und alle Umlaute durch ae, oe, ue ersetzen und speichern
Wenn Du nun nach may suchen willst, may durch MAY ersetzen und MAY mit dem Feld suchname vergleichen.
Ist simpel und wirkungsvoll.
Gruss Simon
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]