| Autor | Správa |
neopagan
 Užívateľ
 Založený: 07.08.2006 Príspevky: 681
 | Zaslal: St 07.11.07 23:28 |   |
mam jednoduchy vyhladavac, ktory po zadani slova uzivatelom do INPUT hlada dane slovo v databaze. Napr. | kód: | | $hladat=mysql_query("SELECT * FROM clanky WHERE nazov like '%".$slovo."%'"); | Chcel by som, aby pri vyhladavani nerozlisoval male a velke pismena. Totiz teraz ak dam hladat napr. "slovo", a v databaze najde "Slovo", tak to nezobrazi ako vysledok hladania, lebo je tam velke S. Da sa to nejako? diky. |
| |
  |
 |
mylan
 Skúsený užívateľ
 Založený: 08.03.2006 Príspevky: 409 Bydlisko: Prešov / Praha
 |
Akú znakovú sadu používaš v danom stĺpci v DB? Na to aby ti nerozlišovalo malé písmená musí znaková sada končiť na "_ci", napríklad teda "utf8_general_ci". ak končí na "_cs", tak rozlišuje veľké a malé písmená.
CS = case sensitive
CI = case insensitive |
| |
   |
 |
neopagan
 Užívateľ
 Založený: 07.08.2006 Príspevky: 681
 |
Aha, to som nevedel. Nastavil som, funguje ! dakujem. |
| |
  |
 |
GoodWill
 Skúsený užívateľ
 Založený: 29.10.2007 Príspevky: 1000 Bydlisko: Bratislava
 |
pripadne ine riesenie:
$hladat=mysql_query("SELECT * FROM clanky WHERE UPPER(nazov) like '%".strtoupper($slovo)."%'"); |
_________________ Koľko SEO expertov je potrebných na výmenu žiarovky výmena žiaroviek žiarovka nové žiarovky úsporné žiarovky sexy žiarovka? | |
   |
 |
neopagan
 Užívateľ
 Založený: 07.08.2006 Príspevky: 681
 | Zaslal: Ut 22.01.08 16:15 |   |
diky, no a potreboval by som este, aby pri hladani ignorovalo diakritiku... teda ak uzivatel zada hladat napr. slovo článok, aby našlo aj to kde je clanok. Da sa to nejako? |
| |
  |
 |
kmsa
 Užívateľ
 Založený: 26.07.2006 Príspevky: 1383 Bydlisko: Slovakia-Košice
 | Zaslal: Ut 22.01.08 19:25 |   |
skor by si potreboval nieco obojstranne napr da clanok tak hlada aj članok ale aj naopak |
_________________ CPU: Intel E7200 momentalne default + freezer 7 pro | MB: Gigabyte GA-P35-DS3 rev. 2.0 F14 | RAM: A-DATA 4x1GB EE Vitesta | VGA: ATI Radeon HD4850 Sapphire Dual Slot | Monitor: BenQ E2200HD+17CTX | HDD: WD 3200AAKS + Maxtor 6Y080M0 80GB SATAII + 120GB ATA Barracuda | PSU: Corsair VX450W | Windows 7 Ultimate Sk | REPRO: Logitech X-210
+
IPhone 3GS JB 3.1.3 (new BR)
múdry sa postara o seba ale ešte múdrejši sa postara aj o druhých | |
    |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: Ut 22.01.08 20:07 |   |
na ingnorovanie diakritiky by si mohol urobit tak ze das funkciu napr:| kód: |
$dk1='ľščťžýáíé'//teda vsetky znaky s diakritikou
$dk2='lsctzyaie'//teda rovnake znaky v rovnakom poradi
$slovo_bez_dk=strtr($slovo, $dk1, $dk2);
| a do db hladania by si dal uz len to $slovo_bez_dk |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
neopagan
 Užívateľ
 Založený: 07.08.2006 Príspevky: 681
 | Zaslal: Ut 22.01.08 20:57 |   |
ano, to vyzera slubne...diky! Ale neviem si predstavit opacny postup, ako pisal kmsa. Ked teda zada clanok a v databaze je článok. Tu mu neviem vopred urcit, ktore pismeno ma nahradit diakritikou...hm... |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: Ut 22.01.08 21:19 |   |
uz som to tu raz pisal v teme http://www.pcforum.sk/query-na-odstranenie-diakritiky-vt25571.html, nie je to sice najidealnejsie riesenie, ale funguje... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
neopagan
 Užívateľ
 Založený: 07.08.2006 Príspevky: 681
 | Zaslal: Ut 22.01.08 22:00 |   |
No pisal si tam o reg.vyrazoch. Konkretny priklad | kód: | $searchstring = "myška";
Regularny vyraz z hladaneho retazca:
$regexp = "[mM][yýYÝ][sšSŠ][kK][aáAÁ]";
Select:
SELECT * FROM tabulka WHERE text REGEXP '$regexp' |
Lenze to je jedno slovo. Ale ja neviem ake slovo bude uzivatel hladat, ako mu definujem kazde pismeno, ked neviem, co bude hladat? Z uvedeneho vyplyva, ze v databaze bude hladat aj myska,Myska,Mýska, atd ... ale ako to zovseobecnit pre lubovolne hladane slova? |
| |
  |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: Ut 22.01.08 22:26 |   |
$searchstring obsahuje retazec, ktory bol zadany do inputu vo vyhladavani, odstranis z tohto retazca diakritiku a prekonvertujes to do tvaru ako je v $regexp, tot vsio... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: Ut 22.01.08 22:52 |   |
nehnevaj sa ale velky rozdiel medz tvojim a mojim skriptom nevidim, teda v tom co robia a myslim ze moj je (vynimocne) lepsi  |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
juho
 Zablokovaný užívateľ
 Založený: 16.05.2007 Príspevky: 837
 | Zaslal: Ut 22.01.08 23:00 |   |
| Drako napísal: | nehnevaj sa ale velky rozdiel medz tvojim a mojim skriptom nevidim, teda v tom co robia a myslim ze moj je (vynimocne) lepsi  | akoze "vynimocne" sa asi mylis chlapce ten regexp vyhlada vsetky slova ten tvoj len tie bez diakritiky a s malymi pismenami, atd. |
_________________ getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória | |
   |
 |
Flety
 Užívateľ
 Založený: 26.11.2006 Príspevky: 4109 Bydlisko: HE(Humenne) - KE Vek: 18
 | Zaslal: Ut 22.01.08 23:02 |   |
ten moj si moze upravit ako chce teda aj velke aj male a napr aj medzery za pomlcky a myslel som to tak ze nestava sa casto aby ja som mal lepsi skript ako stenley |
_________________ Desktop: CASE: Cooler Master Centurion 532 MB: ASUS P5K CPU: Intel Core 2 Quad Q6600@2,4GHz FSB 1066MHz RAM: A-Data Vitesta 2×2GB 800MHz Cl 5-5-5-12 GPU: Saphire ATi Radeon HD5850 Toxic HDD: Seagate Barracuda 500GB 7200rpm ODD1: LG DVD+/-RW + LS(PATA) ODD2:LG DVD+/-RW(SATA) PSU: Fortron Epsilon 700W LCD: LG L226W 1680x1050 2ms | |
       |
 |
stenley
 Moderátor
 Založený: 27.07.2007 Príspevky: 3776 Bydlisko: Bratislava Vek: 27
 | Zaslal: Ut 22.01.08 23:22 |   |
ten tvoj skript je len prvy krok (odstranenie dia) z mojho prikladu
ako juho spravne poznamenal, tvoje riesenie vyhlada len istu malu cast zo vsetkych moznych retazcov, ktore by mal v skutocnosti najst => tvoje tvrdenie je nespravne
ale v poriadku, daj sem priklad, ako by si vyhladal v db slovo "zošiť" (s tym, ze mozem pri vyhladavani napisat zosit, zošit prip. zošiť) pomocou tvojho riesenia... |
_________________ Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB | |
    |
 |
|