hasonló stringek keresése
Hali!
A téma kicsit php-mysql kombó szóval bocsi ha rossz helyre postoltam.
Egy mysqlben tárolom az adataimat, egy
id - csoport(group) - alapitas ideje(cr_date) táblában.
A probléma pedig felvitelnél hogy nagyon sok csoportot kell felvinni, viszont elgépelések, miatt valahogy ellenöriznem kell hogy elgépelés történt vagy esetleg van egy ugyan olyan nevü csoport (jah megegyező nevek megengedettek sajnos)
Úgy képzeltem el, hogy felvitelnél egy *.csv filebol beolvasom az adatokat és soronként megnézem hogy azzal a névvel szerepel-e már csoport az adatbázisban.
Ha nem akkor kap egy szép zöld hátteret, ha pedig van már olyan nevü csoport, akkor kap egy piros hátteret a táblázatom és egy legördülő menüből ki tudom választani hogy most melyik csoportról is van szó.
Sajnos nagyon sokszor ilyen kis nagybetü eltérések vannak.. (Gumimaci, GumiMaci, gumiMaci)
Egyrészt erre keresek egy olyan sql lekérdezést ami a hasonló szringeket dobja ki, mondjuk 3 karakter eltérésöeket, ill ha véletlen belegépeltek a szóba egy spacet vagy egy dupla betüt akkor nem hiszi azt a függvény hogy a hibától kezdve az összes string rossz.. (Gumimaci, Gummimaci - ez már 6 karakter eltérés lenne)
huh eremélem emészthető a dolog.. segítségeteket előre is köszönöm
bye monghuz
■ A téma kicsit php-mysql kombó szóval bocsi ha rossz helyre postoltam.
Egy mysqlben tárolom az adataimat, egy
id - csoport(group) - alapitas ideje(cr_date) táblában.
A probléma pedig felvitelnél hogy nagyon sok csoportot kell felvinni, viszont elgépelések, miatt valahogy ellenöriznem kell hogy elgépelés történt vagy esetleg van egy ugyan olyan nevü csoport (jah megegyező nevek megengedettek sajnos)
Úgy képzeltem el, hogy felvitelnél egy *.csv filebol beolvasom az adatokat és soronként megnézem hogy azzal a névvel szerepel-e már csoport az adatbázisban.
Ha nem akkor kap egy szép zöld hátteret, ha pedig van már olyan nevü csoport, akkor kap egy piros hátteret a táblázatom és egy legördülő menüből ki tudom választani hogy most melyik csoportról is van szó.
Sajnos nagyon sokszor ilyen kis nagybetü eltérések vannak.. (Gumimaci, GumiMaci, gumiMaci)
Egyrészt erre keresek egy olyan sql lekérdezést ami a hasonló szringeket dobja ki, mondjuk 3 karakter eltérésöeket, ill ha véletlen belegépeltek a szóba egy spacet vagy egy dupla betüt akkor nem hiszi azt a függvény hogy a hibától kezdve az összes string rossz.. (Gumimaci, Gummimaci - ez már 6 karakter eltérés lenne)
huh eremélem emészthető a dolog.. segítségeteket előre is köszönöm
bye monghuz
levenshtein távolság
Egy hasonló eset
Egy hasonló probléma elött állok, mint a fent említett. Előre bocsájtanám, h nem vagyok programozó, de a SELECT FROM-ig már eljutottam:D.
Azt szeretném megoldani, hogy egy regisztrációs űrlap kitöltésénél ajaxal lekérdezzem beíráskor, hogy a kívánt felhasználónév nem-e létezik már az adatbázisban. Ezt persze túl egyszerű lenne (sőt idáig már működik is), szóval mondom a bonyolítást.
A felhasználók ékezetes betűkkel is regisztrálhatnak, de kikéne szűrnöm, hogy az ékezetes usernevek ékezetmentesített változatával ne lehessen újra regisztrálni. Pl. ha már "robi" regisztrálva van akkor "rőbí" névvel ne lehessen regelni.
Ehhez kérném a segítségeteket. Létezik-e megoldás arra, hogy sqllekérdezésnél az sqlszerver a kritériumhoz HASONLÓ találatot adjon?
A dolog azért lenne fontos, mert a usereknek szeretnék virtuális subdomaineket adni az adatlapjukhoz és nem szeretném megszivatni magam az ékezetprobléma miatt.
Remélem érthetően írtam le mit is akarok.
Regex
Ez lenne a jó megoldás
Nosza
Amikor kapsz egy felhasználónevet, akkor abból generálsz egy regexet, ahol az ékezetes betűk mellé alternációval beteszed az összes abba a csoportba tartozó betűt, pl.: józsika => ^j(o|ó|ö|ő)zs(i|í)k(a|á)$
Figyelj rá, hogy a táblád típusa meghatározza, hogy a kisbetűt-nagybetűt hogyan veszi figyelembe, ha megkülönbözteti, akkor a nagybetűket is tedd bele, illetve figyelj arra is, milyen más karakterek jöhetnek még szóba (mondjuk umlautos a).
A MySQL regexekről itt van bővebben szó: http://dev.mysql.com/doc/refman/5.0/en/regexp.html
Kezd derengeni...:)
Szóval, a feladat egyszerű (:D), a következőkódot kellene legenerálnom valahogy php-val:
SELECT COUNT( * ) AS result FROM users WHERE username = 'józsika' REGEXP '^j(o|ó|ö|ő)zs(i|í)k(a|á)$'
Ez a kód ugye egy 1-essel vagy egy 0-val tér vissza. Ennek megfelelően íratom ki, hogy az adott usernév regisztrálható-e vagy sem.
Működik :D
Másképp
Nem biztos, hogy ez a jó megoldás
Az "aldomainek" meg .htaccesből lesznek virtuálisan megoldva, tehát nem valós domainek lesznek.
Semmi sem biztos :)