NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
samo007
Tvůrce
Avatar
samo007:15.10.2012 22:19

Ahoj, mam jednu otázku. Ako vložím jednotlivé texty do premennej v javaskripte zo súboru TXT?

Ide o akési aktuality na celý týždeň, ktoré by sa menili podľa dňa (najbližšie sviatky).
Hľadal som ten kód, ale všade sa popisuje všetko možné, ale nie to, ako vložiť text z iného súboru.

Potrebujem ale ešte aj filter na výber textu podľa dátumu. S tým by som nemal problém, keby som ale vedel ako nastaviť, aby aplikácia vedela, o ktorý deň ide...

TXT by mohol vyzerať asi takto:

5.7. Sv. Cyril a Metod
15.8. Nanebovzatie Panny Márie
 
Odpovědět
15.10.2012 22:19
Avatar
Odpovídá na samo007
Drahomír Hanák:15.10.2012 22:26

V klasickém JavaScriptu tohle nejspíš nepůjde udělat. Je to z důvodu bezpečnosti. Napadá mě akorát možnost, načíst si ten text AJAXem nebo si ho prostě předat nějakým serverovým jazykem (třeba PHP). Můžeš to zkombinovat - AJAXem načítat serverový skript ;) Taky lze použít serverový javascript s pomocí node.js

 
Nahoru Odpovědět
15.10.2012 22:26
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:15.10.2012 22:41

A jsme opět u databází...

Javascript na tohle nedoporučuji kvůli indexování ve vyhledávačích.

Nahoru Odpovědět
15.10.2012 22:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Drahomír Hanák
samo007:15.10.2012 22:50

Ďakujem. Takže bez problémov skombinujem to PHP a Javascrip?

 
Nahoru Odpovědět
15.10.2012 22:50
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:15.10.2012 22:52

OK, ale momentálne nemám prístup k databáze tej stránky.
Mysql tiež neovládam, takže neviem ako to vyriešiť.

 
Nahoru Odpovědět
15.10.2012 22:52
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:15.10.2012 23:04

Kde je PHP5, tam je i databáze. Na každém webhostingu jich bývá asi 6 druhů. Stačí si jen vybrat.

Javascript do toho raději nemíchej.

Nahoru Odpovědět
15.10.2012 23:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:16.10.2012 11:36

Je tam databáza, skle nemám k nej prístup. Nieje to totiž moja stránka, ktorú programujem.

 
Nahoru Odpovědět
16.10.2012 11:36
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:16.10.2012 13:20

Tak použij databázi SQLite, k té budeš mít přístup. Umí toho víc a je rychlejší.

Nahoru Odpovědět
16.10.2012 13:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:16.10.2012 15:23

Neviem pracovať so SQLite, dúfam, že tu je na to návod. Ďalej, skúsim niečo vymyslieť :)

Editováno 16.10.2012 15:24
 
Nahoru Odpovědět
16.10.2012 15:23
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:16.10.2012 15:48

Práve som si prešiel tvoj návod INIFILE. Mne totiž bude stačiť toto.
Myslíš, že by som to mohol využiť?

 
Nahoru Odpovědět
16.10.2012 15:48
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:16.10.2012 15:49

Práve som si prešiel tvoj návod INIFILE. Mne totiž bude stačiť toto.
Myslíš, že by som to mohol použiť?

 
Nahoru Odpovědět
16.10.2012 15:49
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:16.10.2012 16:20

Můžeš. Dokonce to byla druhá databáze, kterou jsem ti pro zmíněný účel chtěl navrhnout. Těch záznamů by však nemělo být víc než několik set kvůli výkonu. Předpokládám, že to bude splněno.

Asi ti však časem budou chybět pokročilejší databázové funkce, např. vyhledávání nebo řazení.

Pro uživatele, kteří neznají nic jiného než "SELECT * FROM TABULKA", je to však výborná alternativa.

Editováno 16.10.2012 16:24
Nahoru Odpovědět
16.10.2012 16:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na samo007
David Hartinger:16.10.2012 17:18

Zase vybíráš špatný nástroj, je jen otázkou času, než zjistíš, že v tom něco nejde a budeš se nás ptát, jak to vyřešit. Vezmi si prostě databázi. Chystám se zde udělat seriál pro MySQL, možná dnes již něco přibude, uvidím, jak mi to půjde.

Nahoru Odpovědět
16.10.2012 17:18
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 18:10

Pokud by sis to přečetl pozorněji, tak samo007 nemá přístup k MySQL. Proto jsem mu navrhl SQLite, které je pro tento účel mnohem vhodnější než MySQL a bývá všude tam, kde je PHP5.

Nahoru Odpovědět
16.10.2012 18:10
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 18:22

To je zas nějaká hloupost. MySQL tam je a je to ta nejjednodušší a nejpoužívanější cesta, jak na webu uložit data. Pokud neví údaje, ať si je zjistí, jinak nemá smysl něco dělat. Pokud je neví ani ten, kdo by je měl vědět, je otázka, jestli s tím má smysl ztrácet čas, protože takový projekt je evidentně k ničemu.

Nahoru Odpovědět
16.10.2012 18:22
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 18:38

Proč všichni protežují MySQL před SQLite? Vždyť MySQL se pro webové aplikace nehodí.

Nahoru Odpovědět
16.10.2012 18:38
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 18:45

Nehodí, ale používá se pro ně, já jsem to nevymyslel :) Přijde mi lepší, když si nejprve zkusí mainstream a poté něco jiného, stejně kamkoli přijde, tam bude pravděpodobně MySQL, je dobré si osahat právě tu. Já ale narážím hlavně na to, že nemá ty údaje, to mi přijde zavádějící.

Nahoru Odpovědět
16.10.2012 18:45
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 18:59

Mainstream neboli se stádem. Takovou odpověď jsem očekával. Kamkoli přijde, bude nejen MySQL, ale i SQLite a další 4 databáze. Proč tedy nezvolit tu lepší?

Nahoru Odpovědět
16.10.2012 18:59
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 19:06

Člověk by měl začínat se stádem, než se rozhodne jít po svém. Je to jednodušší a nevidím na tom nic špatného. Beru mainstream jako základní znalost, kterou by měl programátor mít. Když poté dosáhne úrovně, kdy zjistí, že mu něco nevyhovuje, tím lépe. Ale určitě by se neměl učit něco jiného, když nezkusil to, co používá to stádo.

Nahoru Odpovědět
16.10.2012 19:06
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 19:33

Jak krutě a bolestně zní tvá pravda :(

Na druhé straně databáze SQLite patří mezi nejpoužívanější databáze vůbec. Možná o tom jenom nevíš.

Nahoru Odpovědět
16.10.2012 19:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na David Hartinger
samo007:16.10.2012 19:36

Údaje by som si mohol k MYSQL zohnať, ale je to zdĺhavá cesta a vysvetliť to je tiež zdĺhavé.
Asi využijem na začiatok INIFILE, pretože sa mi zdá jednoduchý a podobné niečo som skúšal v Gamemakeru a potrebujem sa naučiť úplný základ (moje znalosti= 0). Potom prejdem na iné databázy.

 
Nahoru Odpovědět
16.10.2012 19:36
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:16.10.2012 19:43

V tomto prípade nebudem potrebovať nič iné ako INIFILE a všetko čo poskytuje, mi postačí.
Zámerne potrebujem niečo takéto jednoduché. Viem prečo to robím. Ja si myslím, že dobré bude pre mňa začať s tým INIFILE, pretože sa potrebujem naučiť aj vytvoriť obyčajné spojenie.

David Hartinger: Veď človek by sa mal začať učiť najprv niečo jednoduché a az potom ísť ďalej. Znie to akoby si vravel, že najprv sa treba naučiť binárny kód a až potom iné odvodené kódy (len ako príklad)

 
Nahoru Odpovědět
16.10.2012 19:43
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na samo007
David Hartinger:16.10.2012 19:46

Ano a databáze jsou extrémně jednoduché, jen o tom nevíš. Ale evidentně máš svou hlavu, jen jsem ti chtěl ušetřit práci, až zas budeš vymýšlet jak něco udělat v nástroji, který pro to není určěný.

Nahoru Odpovědět
16.10.2012 19:46
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:16.10.2012 19:47

Když se podíváš třeba na
http://www.itnetwork.cz/…-a-modularne
tak po změně jednoho řádku pro otvírání databáze to můžeš použít i pro SQLite.

Nahoru Odpovědět
16.10.2012 19:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
samo007:16.10.2012 19:52

Ďakujem za rady, vážim si to :)

 
Nahoru Odpovědět
16.10.2012 19:52
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 19:54

Tomu bych i věřil, je to dobrá databáze a určitě ji používá hodně aplikací. Trochu mi tato situace připomíná Ruby on Rails na naší škole. Zatímco ti pokročilí, co přišli od PHP a MySQL (bylo tam Ruby a SQLite) si mnuli ruce a jásali, v čem je to lepší, začátečníkům to vůbec nic nedalo a měli problémy někam nahrát funkční web. To proto, že k tomu bylo potřeba více hledání a zjišťování, než kdyby se u nás učilo PHPčko, co se jen plácne na FTP a běží to. S SQLite jsem nikdy nedělal (kromě ROR), ale třeba u freehostingů jsem zahlédl vždy jen nastavení k MySQL. To samé jsou pak tutoriály, kde k PDO potřebuješ umět objekty. Nabastlit něco v MySQL mi přijde pro člověka co to nikdy neviděl snažší.

Nahoru Odpovědět
16.10.2012 19:54
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 19:54

Zrovna aktuality bych do INIFILE také nedával. INIFILE je určeno spíš pro neměnná data nevelkého rozsahu a hodí se pro implementaci slovníku. Aktuality nejsou slovník.

Nahoru Odpovědět
16.10.2012 19:54
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 20:05

"k PDO potřebuješ umět objekty" :)

Jak libě zní tato hudba k mým uším. Spousta vývojářů se modlí ke svatému grálu jménem ORM a tady ho mají u nosu.

SQLite má i ovladač podobný ovladači MySQL, ale nepropaguji ho, protože je zastaralý. Nicméně je stejně funkční a stejně použitelný jako ovladač MySQL. Budoucnost má PDO a to pro obě databáze.

PDO se dá používat i v neobjektovém prostředí, ale nějak se mi zatím nechtělo na to psát tutoriál. Myslíš si, že to má význam?

Nahoru Odpovědět
16.10.2012 20:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 20:11

Myslím, že by to mělo obrovský význam, sám jsem teď v PDO dělal něco pro ten Tetris (teď si s tím chvíli dávám pauzu) a nebylo to úplně jednoduché. Chtěl jsem to neobjektové a co nejkratší, jen do 2 skritpů. Hned jsem narazil na problém, prý když to nedám do výjimky, tak se mi v chybě vypíše heslo. Možná to jde vypnout v nastavení, raději jsem tam dal tu výjimku. Připojení mám v obou souborech, nevěděl jsem, jak to nasdílet a dělat nějaký statický obal se mi pro tak malý účel nechtělo.

V MySQL jsme v původním Islandsoftu pracovali takto:

require('pripoj.php');
mysql_query('dotaz');

Vůbec nic jiného jsme neřešili a bylo to opravdu jednoduché. Vlastně ani nevím, jestli to takhle jde v MySQLi, protože tam se již možná musí předávat spojení při volání mysqli_query.

Jak lze PDO použít neobjektově, když mám třeba index.php a do něj vložím menu.php, paticka.php a clanek.php jen pomocí require?

Nahoru Odpovědět
16.10.2012 20:11
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:16.10.2012 20:29

Tak nevím, jestli jsem nepřecenil své schopnosti. Úplně procedurálně bych to asi nezvládl, s objekty je to mnohem jednodušší. Tvůj kompromis mohl být dobrou volbou.

"mám třeba index.php a do něj vložím menu.php, paticka.php a clanek.php ..."

Uh. To všecho includuješ? Já to všechno dávám do jedné šablony, abych měl celou stránku hezky pohromadě a také abych si za všech okolností zachoval validitu výstupu.

Editováno 16.10.2012 20:30
Nahoru Odpovědět
16.10.2012 20:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:16.10.2012 21:11

No tady máme MVCčko, ale ten starý web takhle fungoval. Zezačátku to bylo docela přínosné, protože jsme PHP neuměli a bylo to jednoduché, samozřejmě jakmile měl ten projekt pár set řádků, tak je to nepoužitelné. Ale na první web myslím ideální způsob.

Chtěl bych udělat něco, kde by se prostě napsalo na začátek skriptu připoj (nemuselo se do každého zadávat heslo) a poté se volaly procedurálně dotazy bez ohledu na nějaký kontext připojení.

Nahoru Odpovědět
16.10.2012 21:11
New kid back on the block with a R.I.P
Avatar
samo007
Tvůrce
Avatar
samo007:16.10.2012 22:03

Ešte by som sa chcel spýtať, že čo je to PDO

 
Nahoru Odpovědět
16.10.2012 22:03
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:16.10.2012 22:11

PDO je objektový ovladač databází, který je součástí PHP. Velmi užitečný, ale jen pro ty, kteří se nebrání objektovému programování.

Nahoru Odpovědět
16.10.2012 22:11
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na samo007
Drahomír Hanák:16.10.2012 22:12

PHP ovladač pro práci s několika databázemi http://www.itnetwork.cz/…sql-databazi

 
Nahoru Odpovědět
16.10.2012 22:12
Avatar
samo007
Tvůrce
Avatar
samo007:17.10.2012 8:15

Aha, už rozumiem. Ale budem potrebovať presnejší návod a vysvetliť každý kúsok kódu.

Editováno 17.10.2012 8:16
 
Nahoru Odpovědět
17.10.2012 8:15
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:17.10.2012 9:16

Myslel jsem si, že návody, na které tě odkázal Drahomír Hanák, jsou dostatečně detailní. Také nevím vše, ale většinu problémů vyřeší googlovský dotaz "PHP PDO".

Nahoru Odpovědět
17.10.2012 9:16
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:17.10.2012 9:44

Ďakujem, skúsim to. Ale teraz zatiaľ použijem INIFILES. To sa na ten kalendár celkom hodí. Údaje neplánujem meniť. Postupne ich budem pridávať, ale potom to tak ostane, pretože sviatky sa nemenia a na ďalší rok budú rovnaké :)

 
Nahoru Odpovědět
17.10.2012 9:44
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:17.10.2012 10:00

INIFILE se hodí na úložiště typu key-value. Jenže tady klíč nemáš, protože k některému datu můžeš mít víc událostí. To se už může hodit lépe CSV.

Nahoru Odpovědět
17.10.2012 10:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:17.10.2012 23:09

Čo je CSV?

 
Nahoru Odpovědět
17.10.2012 23:09
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:17.10.2012 23:20

CSV je zkratka pro Comma Separated Values neboli hodnoty oddělené čárkami. Je to velmi jednoduchý formát dat používaný i jako vnitřní formát MySQL. Na každé řádce tabulky jsou hodnoty sloupců odděleny čárkami, příp. jiným oddělovačem.

Často se v tomto formátu dají stáhnout např. výpisy z banky.

Nahoru Odpovědět
17.10.2012 23:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:18.10.2012 7:25

Ano, niečo som o tom dávnejšie čítal (nevedel som, že sa to volá CSV), ale neviem ako sa to prakticky používa. Napr. aká je koncovka súboru a ako sa volajú hodnoty.

 
Nahoru Odpovědět
18.10.2012 7:25
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:18.10.2012 9:33

Přípona bývá kupodivu "csv", ale není to striktně dáno. Běžně se to edituje přímo editorem, dá se to naimportovat do tabulkového procesoru, obvykle funguje i export. Ukládají se do toho čísla a krátké texty. Řetězec obsahující oddělovač musí být v uvozovkách.

V PHP jsou pro práci s CSV vhodné funkce fgetcsv() a fputcsv().

Pokud bys v textu neměl čárky, tak by to ve tvém případě vypadalo asi takto:

5.7., Sv. Cyril a Metod
15.8., Nanebovzatie Panny Márie

Pokud bys chtěl použít původní formát, tak pro čtení můžeš použít funkce file() a explode().

Nahoru Odpovědět
18.10.2012 9:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:18.10.2012 10:37

Ďakujem
A čo tak použiť obyčajný TXT? Niekde mám zapísanú funkciu s niečím ako open list či ako. To si už nájdem...

 
Nahoru Odpovědět
18.10.2012 10:37
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:18.10.2012 10:52

Však jsem napsal, že máš použít funkci file(). Načte ti celý soubor do pole, řádek po řádku.

Nahoru Odpovědět
18.10.2012 10:52
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:18.10.2012 13:13

Veď ano, ale ja som mal namysli iný spôsob. Ale neviem si spomenúť, ako sa to volá.

 
Nahoru Odpovědět
18.10.2012 13:13
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:18.10.2012 13:21

Ty bys chtěl ta data načítat cyklem?

Nahoru Odpovědět
18.10.2012 13:21
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:18.10.2012 13:27

Presne tak

 
Nahoru Odpovědět
18.10.2012 13:27
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:18.10.2012 13:28

A proč, když to můžeš udělat zavoláním jedné funkce?

Nahoru Odpovědět
18.10.2012 13:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
samo007
Tvůrce
Avatar
Odpovídá na Kit
samo007:18.10.2012 13:53

A ako?

 
Nahoru Odpovědět
18.10.2012 13:53
Avatar
Kit
Tvůrce
Avatar
Odpovídá na samo007
Kit:18.10.2012 13:57

Však jsem psal. Zavoláš funkci file(), která ten soubor načte do pole. Proč to musím opakovat?

Nahoru Odpovědět
18.10.2012 13:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 50 zpráv z 51.