kostenloser Webspace werbefrei: lima-city


Automatischer Download per PHP ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    n*******3

    Guten Tag,
    ich habe eine Frage könnte man einen Automatischen Download per php machen?

    <?php
    mysql_connect ("SERVER","USER");
    mysql_select_db ("DATENBANK");
    
    $file = "../input/village.txt";
    $sql = "TRUNCATE TABLE tbl_village";
    mysql_query($sql);
    $filearray = fopen ($file, "r");
    while (!feof($filearray)) {
    $line = fgets($filearray);
    list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
    $name = urldecode($name);
    $name = addslashes($name);
    $sql = "INSERT INTO tbl_village SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'";
    mysql_query($sql);
    }
    fclose ($filearray);
    
    
    $file = "../input/tribe.txt";
    $sql = "TRUNCATE TABLE tbl_tribe";
    mysql_query($sql);
    $filearray = fopen ($file, "r");
    while (!feof($filearray)) {
    $line = fgets($filearray);
    list($id, $name, $ally, $villages, $points, $rank) = explode(',', $line);
    $name = urldecode($name);
    $name = addslashes($name);
    $sql = "INSERT INTO tbl_tribe SET id='$id', name='$name', ally='$ally', villages='$villages', points='$points', rank='$rank'";
    mysql_query($sql);
    }
    fclose ($filearray);
    
    
    
    $file = "../input/ally.txt";
    $sql = "TRUNCATE TABLE tbl_ally";
    mysql_query($sql);
    $filearray = fopen ($file, "r");
    while (!feof($filearray)) {
    $line = fgets($filearray);
    list($id, $name, $tag, $members, $villages, $points, $all_points, $rank) = explode(',', $line);
    $name = urldecode($name);
    $name = addslashes($name);
    $sql = "INSERT INTO tbl_ally SET id='$id', name='$name', tag='$tag', members='$members', villages='$villages', points='$points', all_points='$all_points', rank='$rank'";
    mysql_query($sql);
    }
    fclose ($filearray);
    
    ?>


    Dieses habe ich gefunden, mein Problem ist es geht nicht könnte mir einer dabei helfen?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ähm sorry, aber deine Aufgabenstellung ist mir irgendwie nicht so klar...
    ...das Script was du angegeben hast, versucht aus einer Datei irgendwelche Spielstände in eine Datenbank zu portieren.
    Lt. Thread-Titel möchtest du wahrscheinlich ein Datei-Download machen.

    Sorry aber sag mal lieber was du machen möchtest, als irgendwelche Scripte zu posten.

    Grüßle
  4. Autor dieses Themas

    n*******3


    Ähm sorry, aber deine Aufgabenstellung ist mir irgendwie nicht so klar...
    ...das Script was du angegeben hast, versucht aus einer Datei irgendwelche Spielstände in eine Datenbank zu portieren.
    Lt. Thread-Titel möchtest du wahrscheinlich ein Datei-Download machen.

    Sorry aber sag mal lieber was du machen möchtest, als irgendwelche Scripte zu posten.

    Grüßle


    sorry :)

    also ich brauche ein script welches "automatisch" die spielstände aktualisiert, vielleicht einmal so pro tag.

    weil so muss ich sie immer neu runterladen und importieren , so ca. mein problem nun verstanden?
  5. Also nochmal zum mitmeiseln...

    Du hast irgendwo ein Spiel, was Hiescores usw. in Dateien speichert.
    Nun möchtest du einmal am Tag, die Spielstände in eine Datenbank einlesen als Sicherung bzw. die dann die Daten auf einer anderen Webseite anzeigt?

    ok das mit dem einlesen ist da in deinem Script soweit ok nur deine SQL Anweisungen sind syntaktisch falsch.

    INSERTs haben die Form:
    INSERT INTO tablename (spalte1,spalte2,...) VALUES (Wert1,Wert2,...);

    UPDATEs haben die Form:
    UPDATE tablename SET spalte1=wert1, spalte2=wert2, ... WHERE spalte0=xyz;



    Wenn du die SQL Anweisungen korrigierst, sieht es ganz gut aus ;-)

    Grüßle
  6. Autor dieses Themas

    n*******3

    es geht um das browsergame "die stämme", dort ist es so man kann dort 3.txt datein runterladen, allys , villagaes, player die sollten geupdated werden.

    so die sollten automatisch runtergeladen werden, und dann in das forum importiert werden :)

    soo ca verstanden?

  7. ja also ich die Dateinamen gelesen habe habe ich mir das schon gedacht. Spiele das nämlich auch ;-)
    Also wenn du täglich 1 Update machen willst, würde ich das Programm so anlegen dass entweder alle DB-Einträge gelöscht werden und dann neu angelegt.

    Oder du liest immer ein Datensatz aus dem File und schaust dann ob du ihn schon hast oder nicht. Wenn ja mache Update ansonsten ein Insert.

    Die entsprechenden SQL Kommandos stehen ein paar Threads drüber ...


    Grüßle

    PS: Falls du es nicht hinbekommst, bin ich dir auch gern behilflich. Soll ich mal dein Script bissl anpassen ?
  8. Autor dieses Themas

    n*******3

    ich denke du musst mir wirklich noch etwas helfen ;)

    was muss ich noch genau machen?

    was muss ich in SQL ausführen?

    und was muss ich am script ändern Oo ?
  9. Hier mal eine Lösung für eine Datei...
    <?php
    	// Config
    	$Server['host'] = "localhost";
    	$Server['db'] 	= "staemme_import";
    	$Server['user'] = "root";
    	$Server['pass'] = "";
    
    	// ****************************************************************************************************************
    	// Conn Server
    	$link = @mysql_connect($Server['host'], $Server['user'], $Server['pass'])
    			OR DIE ("Keine Verbindung zum DB-Server: ".$Server['host']);
    	@mysql_select_db($Server['db']) OR DIE ("Keine Datenbank ".$Server['db']." vorhanden.");
    	$res_x = mysql_query("SET NAMES \'UTF8\';");
    	// ****************************************************************************************************************
    
    	$sql = "CREATE TABLE IF NOT EXISTS `tbl_tribe` (
    	  id bigint(20) NOT NULL PRIMARY KEY,
    	  name varchar(255) collate utf8_unicode_ci NOT NULL,
    	  ally bigint(20) NOT NULL,
    	  villages bigint(20) NOT NULL,
    	  points bigint(20) NOT NULL,
    	  rank bigint(20) NOT NULL
    	  ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;";
    
    	$res_c = mysql_query($sql);
    	if (!$res_c) {
    		echo "Fehler: Tabelle konnte nicht erstellt werden.<br>\n";
    	}
    
    	$sql = "TRUNCATE TABLE tbl_tribe;";
    	$res_d = mysql_query($sql);
    	if (!$res_d) {
    		echo "Fehler: Tabelle konnte nicht gelöscht werden.<br>\n";
    	}
    
    try {
    	$file = "tribe.txt";
    	if (!file_exists($file)) {
    		trigger_error("Datei nicht vorhanden. Programm abgebrochen.",E_USER_ERROR);
    	}
    	$fh = fopen ($file, "r");
    	while (!feof($fh)) {
    		$line = fgets($fh);
    		if (strlen(trim($line))==0) {
    			continue;
    		}
    		list($id, $name, $ally, $villages, $points, $rank) = explode(',', $line);
    		$name = urldecode($name);
    		$name = mysql_escape_string($name);
    		$sql = "INSERT INTO tbl_tribe (id,name,ally,villages,points,rank)
    		        VALUES ($id,\'$name\',$ally,$villages,$points,$rank);";
    		$res_q = mysql_query($sql);
    		if (!$res_q) {
    			echo "Fehler im Datensatz: ".mysql_error()."<br>\n";
    		}
    	}
    	fclose ($fh);
    
    	$sql = "SELECT count(id) FROM tbl_tribe;";
    	$res_s = mysql_query($sql);
    	$row = mysql_fetch_row($res_s);
    	echo "fertig. ".$row[0]." Datensätze importiert.<br>\n";
    
    }
    catch(exception $ex) {
    	echo "Fehler beim Dateiauslesen...";
    	fclose ($fh);
    	mysql_close($link);
    }
    
    // ****************************************************************************************************************
    mysql_close($link);
    ?>


    Das mit dem SET NAMES ist wichtig weil die Quelldaten im utf8 Zeichensatz vorliegen.

    Grüßle

    Beitrag geaendert: 31.5.2007 10:03:42 von scout
  10. Autor dieses Themas

    n*******3

    Parse error: syntax error, unexpected T_STRING in /home/www-data/htdocs/n/n3oth3on3/board/input/import_new.php on line 13


    bei mir kommt dann immer das hier nun ;)

    außerdem habe ich schon tabbeln dafür gefunden :

    phpbb_ally
    phpbb_staemme
    phpbb_village
    phpbb_tribe


    Ich hab mir die Einträge mal angeguckt das ist so gemacht z.b.

    phpbb_ally hat 5.776 Einträge

    und dann steht da :

    id : 20525
    name : Ordensritter
    tag : OR
    members : 5
    villages : 5
    points : 1342
    all_points : 1342 
    rank : 3133



    ich denke man braucht nur ein mysql update immer oder ?

    hab mir gerade so mal die MYSQL Datenbanken angeguckt deswegen~

    das heißt er läd die drei datein aus dem netz runter und importier sie dann in MYSQL !

    Beitrag geaendert: 31.5.2007 7:20:43 von n3oth3on3
  11. n3oth3on3 schrieb:
    Parse error: syntax error, unexpected T_STRING in /home/www-data/htdocs/n/n3oth3on3/board/input/import_new.php on line 13



    naja das Forum ersetzt immer doppelte Anführungszeichen gegen einfach Anführungszeichen...
    ersetze halt die Zeilen:

    Zeile 13: $res_x = mysql_query('SET NAMES \'UTF8\';');

    Zeile 50/51:
    $sql = 'INSERT INTO tbl_tribe (id,name,ally,villages,points,rank) VALUES ('.$id.',\''.$name.'\','.$ally.','.$villages.','.$points.','.$rank.');';


    Dann müsste es gehen.



    In Bezug auf die Tabellen...
    Wie die Tabellen dann in wirklichkeit heißen und wie du die Daten dann weiter verwendest, ist mir ja eigentlich egal. Wenn du die Daten in phpbb_ally aktualisieren willst, na dann mußt du halt in meinem Import Script die Tabellennamen entsprechend abändern ;-)

    Achja falls bei dir der max_execution_error kommt, mußt du in der php.ini die Variable "max_execution_time = 300 einstellen. Bist du bei einem Webhoster, kannst du diese allerdings meist nicht editieren d.h. du kannst nur mal bei deinem Hoster anrufen.

    Grüßle

    Beitrag geaendert: 31.5.2007 10:25:39 von scout
  12. Nochmal zum copy and past ;-)
    (Forumgerecht aufbereitet)
    <?php
        // Config
        $Server['host'] = 'localhost';
        $Server['db']     = 'staemme_import';
        $Server['user'] = 'root';
        $Server['pass'] = '';
    
        // ****************************************************************************************************************
        // Conn Server
        $link = @mysql_connect($Server['host'], $Server['user'], $Server['pass'])
                OR DIE ('Keine Verbindung zum DB-Server: '.$Server['host']);
        @mysql_select_db($Server['db']) OR DIE ('Keine Datenbank '.$Server['db'].' vorhanden.');
        $res_x = mysql_query('SET NAMES \'UTF8\';');
        // ****************************************************************************************************************
    
        $sql = 'CREATE TABLE IF NOT EXISTS `tbl_tribe` (
          id bigint(20) NOT NULL PRIMARY KEY,
          name varchar(255) collate utf8_unicode_ci NOT NULL,
          ally bigint(20) NOT NULL,
          villages bigint(20) NOT NULL,
          points bigint(20) NOT NULL,
          rank bigint(20) NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;';
        $res_c = mysql_query($sql);
        if (!$res_c) {
            echo 'Fehler: Tabelle konnte nicht erstellt werden.<br>';
        }
    
        $sql = 'TRUNCATE TABLE tbl_tribe;';
        $res_d = mysql_query($sql);
        if (!$res_d) {
            echo 'Fehler: Tabelle konnte nicht gelöscht werden.<br>';
        }
    
    try {
        $file = 'tribe.txt';
        if (!file_exists($file)) {
            trigger_error('Datei nicht vorhanden. Programm abgebrochen.',E_USER_ERROR);
        }
        $fh = fopen ($file, 'r');
        while (!feof($fh)) {
            $line = fgets($fh);
            if (strlen(trim($line))==0) {
                continue;
            }
            list($id, $name, $ally, $villages, $points, $rank) = explode(',', $line);
            $name = urldecode($name);
            $name = mysql_escape_string($name);
            $sql = 'INSERT INTO tbl_tribe (id,name,ally,villages,points,rank)
                    VALUES ('.$id.',\''.$name.'\','.$ally.','.$villages.','.$points.','.$rank.');';
            $res_q = mysql_query($sql);
            if (!$res_q) {
                echo 'Fehler im Datensatz: '.mysql_error().'<br>';
            }
        }
        fclose ($fh);
    
        $sql = 'SELECT count(id) FROM tbl_tribe;';
        $res_s = mysql_query($sql);
        $row = mysql_fetch_row($res_s);
        echo 'fertig. '.$row[0].' Datensätze importiert.<br>';
    
    }
    catch(exception $ex) {
        echo 'Fehler beim Dateiauslesen...';
        fclose ($fh);
        mysql_close($link);
    }
    
    // ****************************************************************************************************************
    mysql_close($link);
    ?>


    Beitrag geaendert: 31.5.2007 10:34:18 von scout
  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!