Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 16 ] 
AutorSpráva
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok NapísalOffline : 17.08.2014 19:16

Robim zoznamovaci portal a riesim vyber mesta, v databaze mam tabulku s krajmi, okresmi a mestami, tabulka s mestami obsahuje nieco cez 2900 slovenskych miest, dalo by sa to cez rolovacie menu zobrazit vsetko, ale kto bude hladat to svoje medzi 2900 mestami a obcami, takze najlepsim riesenim by bol asi nejaky naseptavac ze ak zacne pisat tak sa mu zobrazi nejaka ponuka. To by som mozno este ako tak nejak dokazal spravit, ale ide mi skor o to, ze nedovli ulozit navstevnikovi jeho nejake pseudo nazov, ale len to co je v databaze. Vedel by ma niekto nakopnut, ze ako na to?







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 17.08.2014 19:38

Tak ešte raz a pomaly, lebo minimálne ja som tú druhú časť nepochopil.
Autocomplete nie je ťažké urobiť, aj jquery to má hotové http://jqueryui.com/autocomplete/

A tá otázka je teda aká? Chceš len jednoducho validovať vstup len na tie, čo sú v db? A to je ťažké urobiť, alebo len nechápem?







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 17.08.2014 19:52

Ano chcem len validovat ten vstup do db, neviem asi som to zle nejak opisal :) mam to riesit akoze tak, ze dany vstup overim ci sa nachadza v tabulke a ak ano, tak sa ulozi, ak nie, tak holt smula a vypisem chybu? Neviem ci na to idem spravne a chcem to spravit co najjednoduchsie...

// Spojený príspevok Ned 17.08.14 19:53

Co sa tyka toho autocomplete, tak to na danej stranke kde chcem zadat teda to mesto, tak sa musi nacitat tak ci tak vsetkych cca 2900 miest? Asi tomu spravne chapem, ze? Mozno primitivne otazky, len mam teraz taku hlavu z toho vsetkeho ze neviem pomaly ani ako sa volam :lol:







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 17.08.2014 20:11

K druhému dotazu - nie, keď užívateľ zadá prvé písmeno, ajaxom môžeš zobraziť trebárs len 10 prvých(najobľúbenejších, alebo inak vybratých) miest. Pchať všetky do kódu by bolo pekne divné...

K prvému - ja osobne by som to robil tak, že by som mal tabulku Mestá so štruktúrou (id_mesto, názov, ďalšie...) a do tabulky Užívatelia by som dával foreign key id_mesto. Po zadaní by som vybral id mesta podľa zadaného názvu a kľudne vložil. Ak select mesta vráti null, tak tam také mesto nie je. Vtedy môžeš dať trebárs varovanie "Máte na mysli mesto ...?". To by sa ale stalo len ak by to mesto napísal niekto celé a neklikol na autocomplete. Tak by si mohol mesto "uhádnuť" podľa posledného zobrazeného, alebo nejakým múdrym porovnaním.







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.02.14
Prihlásený: 19.01.18
Príspevky: 443
Témy: 9
Príspevok NapísalOffline : 17.08.2014 22:38

tak ako pise BX, cez autocomplete v callbacku zavolas cez ajax php funkciu, ktora ti vrati x miest. to si nastavis v danom php skripte ale to uz asi vies.
www.promodeclic.fr take nieco ako mas to druhe pole "ou".
a k prvemu ked pouzijes vyhladavanie v v mysql cez "like" to nebude stacit?


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 19.08.2014 20:17

BX presne tak mam navrhnute tie tabulky, bolo to sice pracne kedze som sa nedostal k ziadnemu hotovemu rieseniu, ok vdaka snad sa mi to podari spravit :)

// Spojený príspevok Uto 19.08.14 20:17

Tak som si to spojazdnil http://www.qlp.sk/vstup.php ale mam tam nejaky problem a netusim vobec v com moze byt, v databaze ked spravim like trebars:

"SELECT mesta FROM mesta WHERE meno LIKE '%br%' LIMIT 10"

tak mi zobrazi vsetko co obsahuje br, ale ked tento select spustim cez php tak mi nezobrazi nic, ak pouzijem len jedno pismeno, resp jeden znak cize aj medzeru, tak sa zobrazi vysledok, ale inac je prazdny...


Kód:
   $sql = "SELECT meno FROM mesta WHERE meno LIKE '%$city%' LIMIT 10";
   $result = mysqli_query($db, $sql);
   $data = array();
   while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
      array_push($data, $row['name']);
   }
   echo json_encode($data);


nevidim tam ziadnu nejaku chybu ze preco to spracuje len jeden znak a na viac sa vykasle, netusi niekto aby som sa mal coho chytit ze v com by mohol byt problem?

// Spojený príspevok Uto 19.08.14 20:20

Este ma napadlo, ze na slovensku mame obce ktore maju rovnaky nazov, ako toto vyriesit aby som vedel len podla mesta rozlisovat ci je dana obec v tom ci inom okrese? kedze v jednom okrese nemame viac miest s rovnakym nazvom....?







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Naseptavac

Registrovaný: 05.04.11
Príspevky: 1693
Témy: 50
Bydlisko: Žilina, Pop...
Príspevok NapísalOffline : 19.08.2014 20:32

Pre vyhľadávanie v textoch používam fulltextové vyhľadávanie s indexom. http://www.fi.muni.cz/~kripac/PV136/zur ... ntace.html Normálne s tým nemáš problém s takou malo tabuľkou. Žiaľ lepší príklad neviem nájsť. Princíp je vytvoriť index nad danými stĺpcami, samozrejme pokiaľ ho už vytvorený máš tak nemusíš, a potom je príklad vyhľadávania asi takýto :
Kód:
SELECT * FROM tabulka WHERE
MATCH(sloupec1,sloupec2,sloupec3) AGAINST('slovo')







_________________
rMBP 13 2015
iPhone 7
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 19.08.2014 21:43

Takze spravil som chybu, mal som nastavene zle kodovanie a uz to funguje ako ma, uz sa len zamerat na to aby som vedel priradit nejaku obec z tych co mame na slovensku viac s tym istym nazvom do spravneho kraja...vobec ma nenapada ako na to







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.02.14
Prihlásený: 19.01.18
Príspevky: 443
Témy: 9
Príspevok NapísalOffline : 19.08.2014 22:59

keby si to riesil pomocou psc? v tom pripade by si mal unikatne mesto. inak nie je riesene aj psc podla kraja pod ktore spadaju? ak ano tak by si to mal o to lahsie


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 20.08.2014 0:25

to asi nie, mozno idem na to vsetko uplne blbo a slo by to jednoduchsie, len ma nenapada akym inym sposobom ulozit registrovanemu jeho kraj, okres a mesto a podla toho potom aj vyhladavat, mozno sa to da aj inac....no nakoniec som to spravil takto http://www.qlp.sk/vstup.php lebo fakt netusim ako cez ten naseptavac preposlat aj id kraja a okresu







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Užívateľ
Užívateľ
Naseptavac

Registrovaný: 03.04.08
Prihlásený: 10.12.19
Príspevky: 4667
Témy: 37
Bydlisko: Trnava
Príspevok NapísalOffline : 20.08.2014 6:59

Fuuuha usability a ux, nie moc dobre riesenie pre uzivatela. Uzivatel by ti mal poskytnut mesto ty uz musis doriesit ostatne. Nemusis mu ukladat staci si ulozit nejake id mesta k jeho menu a z dalsej tabulky prirady kraj, okres. Daj mu iba jeden field s autocomplete, na nazov mesta a nepovolis mu potrvdenie pokial nevyberie z moznosti. Ak to chces mat dobre nezabudni na okamzitu spatnu vazbu a ak to chces mat este lepsie dovol mu chyby s tym ze mu das potom hlasku v zmysle "mali ste namysli" a zaklikne spravne mesto... Snaz sa ho nutit vyplnit co najmenej veci. + nemusa to byt select boxy, mozes pracovat s inymi elementami ktore aj krajsie nastylujes.







_________________
Hmmm .... Hrošíček ... [Homer]
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.02.14
Prihlásený: 19.01.18
Príspevky: 443
Témy: 9
Príspevok NapísalOffline : 20.08.2014 7:08

a tymto sposobom? https://developer.mozilla.org/en-US/docs/Web/HTML/Element/optgroup
mal jeden autocomplete input tak ako na zaciatku, vysledky by sa ti zobrazili zgrupene podla kraja a okres by si nedaval? tym by si vyriesil aj problem viacerych miest.


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 20.08.2014 10:11

necham to tak ako som to spravil, tak aspon nemusim osetrovat zle zadane vstupy, toto ma mohlo napadnut na zaciatku, ze ako vobec riesit toto, ale nepredpokladal som ze tu budeme mat celkom dost obci s tym istym nazvom a nechce sa mi prechadzat vsetko a nejak to ani menit, mohol by som k tym mestam pridat do nazvu v zatvorke okres trebars, no uvidim, necham si to v zalohe







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1702
Témy: 0
Príspevok NapísalOffline : 20.08.2014 10:26

Chcel som ti napísať, že by asi bolo rozumné, aby sa tam vyberal kraj, okres a až potom mesto (pretože, ako si už zistil, názvy miest/obcí sa môžu opakovať). :)

Každopádne by bolo rozumné, aby sa, v prípade, že má viac miest rovnaký názov, zobrazoval aj okres, inak ľudia môžu omylom vybrať názov, ktorý nechcú (napr. kvôli preklepu a podobnému názvu).


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Naseptavac

Registrovaný: 01.05.05
Príspevky: 13348
Témy: 1496
Bydlisko: Bratislava
Príspevok Napísal autor témyOffline : 20.08.2014 10:51

No preto som to spravil tak, lebo ak by som uvadzal pri zadavani napriklad cez ten naseptavac aj okres tak by to asi bolo uz moc dlhe, takto to asi bude najlepsie, netusim ako inac to spravit efektivnejsie, ako som pisal vyssie tak ten naseptavac by bol este lepsi, ale to by som musel ku vsetkym opakovanym nazvom pridat este ja neviem trebars do zatvorky skratku okresu trebars aby sa to dalo rozlisit, ale to sa mi popravde nechce, dost hodin som stravil len nad tym aby som to pridal do databazy :lol: a ved to aj tak nebude kazdy menit 20x za den, takze je to asi jedno... :)







_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF & 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 | iPhone X 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu Server
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3
Príspevok NapísalOffline : 20.08.2014 13:31

Pána beka, veď máš v db aj okresy aj kraje, tak to neni nič ťažké... Buď do autocomplete pridáš malým písmom okres (ten stačí), alebo pri potvrdení - pri tom výbere id mesta podľa názvu - si vyberieš id a COUNT. Ak bude COUNT vyšší ako jedna, tak zobrazíš nejaký výber "Ktoré mesto máte na mysli?" a podľa toho vložíš. To sa ale nebude stávať často, takže pohoda...







_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Odpovedať na tému [ Príspevkov: 16 ] 


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra