_set_dbusername($dbusername))) return false; if (!($this->_set_dbname($dbname))) return false; $this->dbpassword = $dbpassword; $this->playerhistorytable = $playerhistorytable; $this->playertablename = $playertablename; $this->usertablename = $usertablename; $this->_set_dbhost($dbhost); } /** * Parse main allypage with all players in it * * @param String $content HTML Content */ function set_current_stats($content/*, $content_type*/) { mysql_connect($this->dbhost, $this->dbusername, $this->dbpassword) or die(PARSER_ERROR3); mysql_select_db($this->dbname) or die(PARSER_ERROR2); $failed_inserts = 0; $ally_page_info = array(); $content = explode("&",$content); $playernames = str_replace("playername=","",$content[1]); $playernames = explode("|",$playernames); $ogame_playerids = str_replace("ogame_playerid=","",$content[2]); $ogame_playerids = explode("|",$ogame_playerids); $scores = str_replace("score=","",$content[3]); $scores = explode("|",$scores); for ($i=0;$ierror = "Query: $query\n
Error: ".mysql_error()."\n
"; return false; // stop inserting - mysql error } // set playerid to every field while ($line = mysql_fetch_object($res)) { for ($i=0;$iogame_playerid) { $ally_page_info[$i]["galaxytool_playerid"] = $line->id; $ally_page_info[$i]["current_ogame_playerid"] = $line->ogame_playerid; } } } } // now get all players by playername $query = "SELECT id,ogame_playerid,playername FROM $this->playertablename WHERE playername IN ("; for ($i=0;$ierror = "Query: $query\n
Error: ".mysql_error()."\n
"; return false; // stop inserting - mysql error } // set playerid to every field while ($line = mysql_fetch_object($res)) { for ($i=0;$iplayername) { $ally_page_info[$i]["galaxytool_playerid"] = $line->id; $ally_page_info[$i]["current_ogame_playerid"] = $line->ogame_playerid; } } } // now every player has its galaxytool playerid or is not yet inserted $query = "INSERT INTO $this->playertablename (id,playername, ogame_playerid, points) VALUES "; // for new players or those without ogame playerid $query2 = "INSERT INTO $this->playertablename (id,playername, points) VALUES "; // for own player and players that do not need a ogame_playerid_update $query1_run = 0; $query2_run = 0; for ($i=0;$i 0) { // ogame playerid already known $query2 .= "(".$ally_page_info[$i]["galaxytool_playerid"].",'".$ally_page_info[$i]["playername"]."',".$ally_page_info[$i]["playerscore"]."),"; $query2_run++; } else { // playerid currently not known on the database $query .= "(".$ally_page_info[$i]["galaxytool_playerid"].",'".$ally_page_info[$i]["playername"]."',".$ally_page_info[$i]["ogame_playerid"].",".$ally_page_info[$i]["playerscore"]."),"; $query1_run++; } } } $query = substr($query,0,strlen($query)-1); // remove comma $query .= " ON DUPLICATE KEY UPDATE playername=VALUES(playername), ogame_playerid=VALUES(ogame_playerid), points=VALUES(points) "; $query2 = substr($query2,0,strlen($query2)-1); // remove comma $query2 .= " ON DUPLICATE KEY UPDATE playername=VALUES(playername), points=VALUES(points) "; if ($query1_run > 0) { // update other players $res = mysql_query($query); if (!$res) { $this->error = "Query: $query\n
Error: ".mysql_error()."\n
"; return false; // stop inserting - mysql error } } if ($query2_run > 0) { // update own player and players that do not need a ogame_playerid_update $res = mysql_query($query2); if (!$res) { $this->error = "Query: $query2\n
Error: ".mysql_error()."\n
"; return false; // stop inserting - mysql error } } return true; } /** * @return boolean * @param String $tablename Name der Tabelle mit den Downloads * @desc Setzt den Tabellennamen für die Datenbankverbindung */ function _set_tablename($tablename) { if (!empty($tablename)) { $this->tablename = $tablename; return true; } else { $this->error = "Der Tabellenname ist leer!"; return false; } } /** * @return boolean * @param String $dbusername Datenbanknutzername * @desc Setzt den Username für die Datenbankverbindung */ function _set_dbusername($dbusername) { if (!empty($dbusername)) { $this->dbusername = $dbusername; return true; } else { $this->error = "Der Username ist leer!"; return false; } } /** * @return boolean * @param String $dbname Datenbankname * @desc Setzt den Namen der zu verwendenden Datenbank */ function _set_dbname($dbname) { if (!empty($dbname)) { $this->dbname = $dbname; return true; } else { $this->error = "Der Datenbankname ist leer!"; return false; } } /** * @return boolean * @param String $dbhost Datenbankadresse * @desc Setzt die Host-Adresse für die Datenbank */ function _set_dbhost($dbhost) { $this->dbhost = $dbhost; return true; } } ?>