Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] wgrywanie z txt.gz do bazy danych
Forum PHP.pl > Forum > Przedszkole
krzychu0808
Witam... chciałem wgrać bazę wiosek z plemiona.pl zrobiłem to w taki sposób:

  1. <?php
  2. $connection = mysql_connect("xxx", "xx", "xxx");
  3. $db = mysql_select_db("xxx", $connection);
  4. if (!$connection)  
  5.    {    
  6.    print "wystšpił błšd w połšczeniu";    
  7.    exit;  
  8.    }
  9.  
  10. $lines = gzfile('village.txt.gz');
  11. if(!is_array($lines)) die("Nie można było otworzyć pliku");
  12. foreach($lines as $line) {
  13.    list($id, $name, $x, $y, $tribe, $points, $bonus) = explode(',', $line);
  14.    $name = urldecode($name);
  15.    $name = addslashes($name);
  16.    mysql_query("INSERT INTO wioski_25 SET id_wioski='$id', name='$name', x='$x', y='$y', tribe='$tribe', points='$points', bonus='$bonus'");
  17. ?>


1 rekord wygląda tak:
4,xxx,525,464,0,210,0

proszę o pomoc bo jak podmieniłem przykładowe dane do zmiennych to mi je dodało więc gdzieś musi być błąd przy rozpakowaniu i rozbiciu.
nie wyświetla mi żadnego komunikatu jak użyje tego kodu

proszę o pomoc.
zegarek84
jakie dane podmieniasz?? czemu nie skorzystasz z tranzakcji questionmark.gif - do msql to chyba z minutę albo ponad będzie dodawało - mi do sqlite dodawało ponad 10s bez tranzakcji - urzyj przy okazji tranzakcjię... jak 2 miesiace temu to robiłem to i brakło dostępnej pamięci na funkcję file (może i u Ciebie tak jest a masz wyłączone bądź ukryte powiadamianie o tego typu błędach) - może zczytaj linijke po lini?? - dla rozpakowanych funkcja fgets a dla spakowanych gzgets

taka baza jest przydatna do farmienia - wiele przyśpiesza ^^ - w grze z tej listy korzysta teraz tylko jedna osoba (nie ja)...

błędu tu nie widzę - może jednak jesteś nie cierpliwy i bez tranzakcji przymula Ci bazę bądź bardziej prawdopodobne skoro kożystasz z funkcji file brakuje Ci pamieci??

lista wygenerowana z bazy pozwala na dosyć dokładne farmienie i nic wtedy się nie chowa bo nie trzeba tego szukać na mapce ^^ - już nieraz na forum w plemionach pisałem jak robić link do automatycznego logowania ale jakoś nikt nie słucha nigdy, znam też strukturę linków normalnych - przy pomocy tej bazy można zrobić listę z linkami do wiosek po kliknieciu którego od razu jest się na placu danej wioski z wpisanymi współrzędnymi do ataku - dla jasnosci jak długo musiałem zniechęcać sąsiadów do farmienia jak się wie jak rozsyłać jednostki to ponad 100 a nawet 200 ataków rozsyłałem drobnych na faremki w czasie poniżej 5 min ^^ - i to ręcznie...

jeśli przeanalizujesz jak pracuje przegladarka i zastopujesz wykonywanie skryptów js i osobno puścisz stoper to mając jedną wioskę jest się w stanie uniknąć wyniszczenia ofa i puścić kontrę z czasem poniżej 0,25 s... wielu się dziwi jak to możliwe żeby wysłać 4 ataki poniżej 1s, a jednak to możliwe - maxymalnie można wysłać 5 ataków na sekundę bo inaczej wyskakuje komunikat ;p - tak, da się szybciej jeśli odpowiednie skróty klawiszowe sie przypisze do opery ^^ - nie byłem znany i w top krótko zawsze siedziałem gdyż z braku czasu musiałem zawsze rezygnować, ostatni swiat na jakim grałem (s22) to choć w ogólnym top nie byłem może najwyżej to osiagnąłem najważniejsze dla siebie top - top1 agresorów i obrońców jednocześnie - miałem sporą przewagę w łącznej tej punktacji ^^ i miałem satysfakcję gdyż stoczyłem ciekawą walkę z jak się okazało dosyć zgranym plemieniem które na początku wojenki było top12 a ja bez plemienia ^^ - niby na forum większość myśli że przegrałem ale to nie istotne - w każdym bądź razie każdy wiedział że główne szturmy przetrzymałem i przy okazji nie mało przejąłem a mimo tego jeszcze ofa miałem ^^

na selekcję wiosek wystarczą proste równania matematyczne w zapytaniu sql


a tak przy okazji co znaczy ten bonus?? z niego zrezygnowałem, z tej danej bo mi nic nie mówiła a wyglądała bardziej na losową cyfrę...

a i żeby wygenerować link działający u osoby zastępującej potrzebujesz jeszcze numer gracza - ale to można łatwo wydobyć z jednego linku podczas zastępstwa ^^...

może na ferje wrócę do gry ^^ - nigdy długo nie gram, raczej wykańczam najsilniejszych w swojej okolicy i gram tylko do kilku wiosek a potem out ^^
krzychu0808
Problem leży w tym że chciałem to wrzucić na CBA.pl ale oni mają max pliku 3mb a baza ma 10mb ,bo jak zrobiłem plik co miał tylko 100 rekordów to ładnie dodało ale zrobiłem otwieranie bezpośrednio z txt. więc chce odczytać bezpośrednio i zrobiłem:

  1. <?
  2. $connection = mysql_connect("xxx", "xxx", "xxx");
  3. $db = mysql_select_db("xxx", $connection);
  4. if (!$connection)  
  5.    {    
  6.    print "wystšpił błšd w połšczeniu";    
  7.    exit;  
  8.    }
  9.  
  10. $lines = file("http://pl25.plemiona.pl/map/village.txt");
  11. if(!is_array($lines)) die("Nie można było otworzyć pliku");
  12. foreach($lines as $line) {
  13.    list($id, $name, $x, $y, $tribe, $points, $bonus) = explode(',', $line);
  14.    
  15.    $name = urldecode($name);
  16.    $name = addslashes($name);
  17.    mysql_query("INSERT INTO wioski_25 SET id_wioski='$id', name='$name', x='$x', y='$y', tribe='$tribe', points='$points', bonus='$bonus'");
  18. }
  19.  
  20. ?>

i dostaje komunikat: Nie można było otworzyć pliku  
to może być wina tego że max plik to 3mb questionmark.gifquestionmark.gif

albo może znacie jakiś darmowy hosting co ma max plik 10-20mb
zegarek84
chm bezpośrednio z pliku to raz nawet jesli by to działało nieźle to spowalnia gdyż i tak musi go pobrać, a dwa juz pisałem że może jednak masz za mało udostępnionej pamięci dla funkcji file?questionmark.gif może lepiej skożystac z fgets?questionmark.gif największy niespakowany plik zajmował ten co dawniej ściągałem 3,6mb... plik zawierający prawie 70k rekordów spakowany zajmuje tylko 1,5mbwiec nie widze problemu... dzisiaj mam wygenerować na prośbę znajomego bardziej skomplikowaną listę i baza zawiera wiecej kolum a mimo to po komendzie VACUUM zajmuje tylko 2,5 mb - co prawda to baza sqlite ale coś mi się nie chce wierzyć że msql aż tak się rozrasta... a do czego sluży ta kolumna bonus?? zrezygnuj z niej i najprawdopodobniej nie przepuszcza cię funkcja file - ona zapychała pamięć na domyslnych ustawieniach serwera u mnie a na cba nie zmienią ich dla Ciebie, skożystaj jak już napisałem z funkcji fgets lub gzgets dla spakowanych plików.... pozdro.... widzę że temat założyłeś też o wyszukiwarce - czy on też sie plemion dotyczy??
krzychu0808
nie o wyszukiwarce to miałem problem na innej stronie ale już jest ok chodziło o typy danych w bazie MYSQL... nie będę się bawił z cba bo mam na dydyku konto u kupla ale tam nie chciałem sobie zaśmiecać takimi gównami
zegarek84
a w końcu jest jakiś problem czy nie ma? muj nick z s22 to Toorop, pomagam maxuelowi - aktualnego nicku jego nie podam....
krzychu0808
już nie ma
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.