• Psst! Ano, Ty! Ještě nejsi zaregistrovaný na našem herním fóru? Přicházíš tak o možnost zapojit se do diskuzí a navíc si tu můžeš zkrátit čekání například při výstavbě nové budovy či jednotek. Zaregistruj se ještě dnes pomocí následujícího odkazu:

    » Vytvořit účet na fóru

barbarske vesnice v externich datech

DeletedUser

Guest
Tusim, ze mi to tam take delalo problemy. Nakonec musela byt striktne i MySQL i PHP novejsich verzi a vsude kde to slo nacpane UTF-8. A tusim jesem to tam musel cpat neescapovane, ci uz nevim.

Ale nakonec se to povedlo.

je zvlastni, ze kdyz projizdim ty data v phpmyadmin tak jsou spravne cesky, a teprve na my strance jsou spatne, a to i pres to, ze predtim byly spravne jak v mysql tak na strance. ale zatim jsem se tim este tolik nezabyval.

ted se snazim optymalizovat moje prikazy do db, protoze chudak muj pc to proste nezvlada, kazdy posunuti po mape mu trva nekolik sekund a to uz jsem uplne vynechal nektery kontroly. :-(
 

DeletedUser2029

Guest
je zvlastni, ze kdyz projizdim ty data v phpmyadmin tak jsou spravne cesky, a teprve na my strance jsou spatne, a to i pres to, ze predtim byly spravne jak v mysql tak na strance. ale zatim jsem se tim este tolik nezabyval.

A máš je v UTF-8? Posílá se v HTTP header utf-8. Případně přímo v metadatech?
Kód:
 <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">


--------

ted se snazim optimalizovat moje prikazy do db, protoze chudak muj pc to proste nezvlada, kazdy posunuti po mape mu trva nekolik sekund a to uz jsem uplne vynechal nektery kontroly. :-(
Indexovat, indexovat, indexovat. Pomalejší při insert, náročnější na místo, ale rychlejší pro zpracování. Případně předpřipravit hash, ...
 

DeletedUser

Guest
1) mno abych rekl pravdu, tak v http meta posilam windows-1250 (jinak se mi nezobrazej spravne ty znaky, ktery jsem na stranku normalne napsal) a v php header posilam utf-8 (ale jen nekde. tu http meta hlavicku taky neposilam v xml datech, co posilam pri prohlizeni mapy)

2) vsude pouzivam unique id. mam tam pridat jeste nejaky index?
 

DeletedUser2029

Guest
1) mno abych rekl pravdu, tak v http meta posilam windows-1250 (jinak se mi nezobrazej spravne ty znaky, ktery jsem na stranku normalne napsal) a v php header posilam utf-8 (ale jen nekde. tu http meta hlavicku taky neposilam v xml datech, co posilam pri prohlizeni mapy)
Myslím, že prohlížeče berou nejprve http meta. Není-li, tak php header. Není-li, tak odhadují či vezmou default (obvykle windows-1250)

A pochopitelně v rámci jedné stránky nemůžeš mixovat kódování. Takže pokud někam sypeš výstup z MySQL ze stažených DK dat, tak i celý zbytek stránky bys měl mít v UTF-8, chceš-li diakritiku.


2) vsude pouzivam unique id. mam tam pridat jeste nejaky index?
Netuším co a jak prohledáváš. To záleží na kódu. Ale jestli např. vykresluješ jen výsek mapy (select dle souřadnic), tak třeba zkus nasadit index nad souřadnicemi (ten pochopitelně ne UNIQUE).
 

DeletedUser

Guest
tak uz se mi to podarilo znacne zrychlit. ale nevim jestli to bylo kvuli tomu, ze jsem tam predelal ty indexy, a nebo jestli to bylo tim, ze jsem zmenil uloziste na myisam z innodb
 

DeletedUser

Guest
kamarad me donutil, abych to teda umistil na internet. tak jsem to tam hodil: http://www.dk.chytry.cz. ma to ale jednu chybu. nemam zde v mysql prava na praci se soubory, takze to musim importovat tim zpusobem, kterym jsem to delal prve. timto to zvladne kmeny a hrace. ale vesnic uz je moc. nemel by jste nekdo napad, jak to nejak elegantne vyresit? ja se to ted snazim rozdelit do nekolika casti, kde se mezi nima opetovne vola stranka od klienta. dekuji.
 
Naposledy upraveno moderátorem:

DeletedUser2029

Guest
Nenašel jsem rozumné řešení.

Jedině mne napadlo - ale vůbec jsem netestoval a netuším jak s rychlostí a podobně - naimportovat to "doma" a domácí DB pustit ven na net - nejlépe firewallem jen na adresu serveru.

A pak, na serveru, udělat import z jiné DB. Tedy ne že se bude každý dotaz odkazovat na domácí DB. Ale že po tom domácím importu spustím i import na serveru, kde si třeba v PHP otevřu obě databáze a vyzobu řádku po řádce z domácí dbase a přesypu to do té webové dbase /rozděleně po úsecích, trvalo-li by to dlouho/.

Ale jak říkám, netestováno, třeba je to úplná blbost, třeba to půjde lépe. Je to jen nápad.


EIDT:

Jo a to možné zrychlení - posílat tam jen změny. Tedy, v domácí databázi mít starou a novou. U vesnice, jsou-li dostavěné, se už moc nemění. Takže vytvořit jen databázi změn (resp. vybrat jen změněné položky) a ty takto přeimportovat. Vesnice na DK nemizí, takže tento případ lze vynechat. Jen se objevují nové či se změní některé hodnoty u starých.
 
Naposledy upraveno moderátorem:

DeletedUser

Guest
Jo a to možné zrychlení - posílat tam jen změny. Tedy, v domácí databázi mít starou a novou. U vesnice, jsou-li dostavěné, se už moc nemění. Takže vytvořit jen databázi změn (resp. vybrat jen změněné položky) a ty takto přeimportovat. Vesnice na DK nemizí, takže tento případ lze vynechat. Jen se objevují nové či se změní některé hodnoty u starých.

jo todle zni docela fajnove. mozna to pak tak skusim.
 

DeletedUser2029

Guest
Možná by to šlo i bez externího přístupu k domácí databázi.

Že bys doma vytvořil rozdílový soubor, který by měl stejnou strukturu jako "villages.txt". Jen by tam byly jen vsi které se nějak měnily. A ten soubor bys poslal ven, někam na "veřejnou" adresu. A použil jej jako vstup.

A na serveru by vlastně nebyla žádná změna, jen bys před importem villages.txt nedropoval tabulku (zachoval starou) a jen přepsal nové řádky (místo INSERT INTO dělat REPLACE INTO) - ale jinak vše zachovat.

Výhoda je, že to není až tak vázáno na domácí dbase. A ten rozdílový soubor vlastně může být i úplný InnoGames "villages.txt" seznam rovnou stažený bez úprav. V nouzi.
 

DeletedUser

Guest
pro zatim to mam tak, ze to nahraje 20 000 vesnic, a pak se to pres php-header reloadne a nahraje dalsi ... nevyhodou je, ze to soubor z kmenu nacita asi petkrat, vyhodou je, ze tento import muzu povolit vice lidem, i tem, kteri nemaji vlastni db a tedy moznost vytvorit soubor se zmenami.

moznym zrychlenim by bylo sloucit 20 000 mysql queries do treba 20 a vkladat po 1000 vesnicich.

ale ted bych dal prednost vyreseni ceskych znaku.
a taky musim nahrat 1 000 000 radku s terenem :) - to budu mozna taky nejak muset orezat, jeste uvidim.

jinak na mape se jiz vesnice zobrazuji! takze si to lze prohlednout a okomentovat.
 
Nahoru