Autor Zpráva
Watchick
Profil
Zdravím, na adrese:
speed.travian.cz/map.sql

je soubor, jak mohu provést jeho obsah (je tam pouze INSERT ...)
a pokud jde o jméno tabulky, které tam je (asi v 16 000 řádcích stejné... [INSERT INTO x_world ...] je lepsí tam toto nechat a nahrát do tabulky, a tabulku si po nahrani vsech dat prejmenovat, nebo je lepší dát funkci replace, na každý z řádků?)

Předem díky za rady
Joker
Profil
Watchick
Nejlépe přes phpMyAdmin: dejte provést SQL dotaz, načíst ze souboru... a je to :)
Watchick
Profil
To právě nepotřebuji.. I když díky za tip, na test se to výborně hodí .-)
Ale tento výstup se mění každé ráno a já potřebuji, aby se to aktualizovalo
Joker
Profil
Watchick
Tak automaticky asi takhle:
1. explode podle řádků -> pole
2. pro to pole foreach - každý řádek -> obsah poslat do databáze
Watchick
Profil
Achich ouvej, proč to nejde najednou? :(
Joker
Profil
Watchick
Protože mysql_query umí provést jen jeden dotaz najednou, takže najednou to tak jako tak nepůjde.
Watchick
Profil
Kurna, zase to blbne, ukazuje mi to špatně! rika to ze mam prazde pole, jako u hvezdickove manie
bohyn
Profil
Watchick
Jestli mas k dispozici MySQLi (jako ze asi ano) tak tam je mysqli->multi_query(). Ta umi zpacovat vice dotazu najednou.
Co se bezpecnosti dotyce, tak je asi jasne, ze tim davas volny pristup k databazi treti strane...
Watchick
Profil
Jo, dobrý, oproti původnímu očekávání se script provádí pod 1 sec, tak je to v pohodě...
<?php
$html = file_get_contents("http://speed.travian.cz/map.sql");
$radek = explode("\n",$html);
include "../spojeni.php";
$zacatek = time();
foreach ($radek as $temp) {
mysql_query($temp);
}
$konec = time();
echo "Začátek: " . date("G:i:s",$zacatek) . ", konec " . date("G:i:s",$konec) . "Trvání: " . ($konec - $zacatek) . "sec";
?>
Watchick
Profil
pro případné zájemce:
<?php
$html = file_get_contents("http://speed.travian.cz/map.sql");
$radek = explode("\n",$html);
include "../spojeni.php";
$zacatek = time();
foreach ($radek as $temp) {
mysql_query($temp);
}
$konec = time();
echo "Začátek: " . date("G:i:s",$zacatek) . ", konec " . date("G:i:s",$konec) . "Trvání: " . ($konec - $zacatek) . "sec";
?>
Houba77
Profil
Warning: file_get_contents(): URL file-access is disabled in the server configuration in /3w/kvalitne.cz/c/cml/prehled.php on line 2

Warning: file_get_contents(http://speed.travian.cz/map.sql): failed to open stream: no suitable wrapper could be found in /3w/kvalitne.cz/c/cml/prehled.php on line 2

Warning: main(): open_basedir restriction in effect. File(/3w/kvalitne.cz/c/spojeni.php) is not within the allowed path. (from /3w/kvalitne.cz/c/cml) in /3w/kvalitne.cz/c/cml/prehled.php on line 4

Warning: main(../spojeni.php): failed to open stream: Operation not permitted in /3w/kvalitne.cz/c/cml/prehled.php on line 4

Warning: main(): Failed opening '../spojeni.php' for inclusion (include_path='.:/usr/local/lib/php') in /3w/kvalitne.cz/c/cml/prehled.php on line 4

Warning: mysql_query(): Access denied for user 'nobody'@'192.168.12.3' (using password: NO) in /3w/kvalitne.cz/c/cml/prehled.php on line 7

Warning: mysql_query(): A link to the server could not be established in /3w/kvalitne.cz/c/cml/prehled.php on line 7
Začátek: 19:11:04, konec 19:11:04Trvání: 0sec

Co s tím?
fuckin
Profil
Houba77:
Prvne by nebylo naskodu precist si zdejsi pravidla. Mel jsi zalozit novy topic.

A ted ke kodu. Nemuzes cekat, ze kdyz uplne doslova skopirujes kod tak ti pojede.
Predevsim myslim adresu v file_get_contents() a include souboru ktery neexistuje.
nightfish
Profil
Houba77:
a já teď opravím fuckina:
máš na hostingu zakázané načítání souborů přes URL (konfigurační direktiva allow_url_fopen) - kontaktuj svého hostera s žádostí o její povolení
řádek include "../spojeni.php"; pak nahraď připojením ke své databázi (mysql_connect, mysql_select_db)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: