Datenkonverter nach MXChange-Datenbank
\n"; // Umgebung testen echo "Teste Umgebung.... "; if (!file_exists("tmp")) exit("Verzeichnis tmp mit CHMOD 777 bitte anlegen!"); @touch("tmp/test.sql") or exit("Bitte CHMOD 777 auf tmp setzen!"); unlink("tmp/test.sql"); echo "OKAY
\n"; echo "Konvertiere Daten... "; @touch("tmp/mxchange-db.sql"); $fp = @fopen("tmp/mxchange-db.sql", 'w'); // Daten geht's mit den Userdaten los! $result = mysql_query("SELECT ID,user,vorname,nachname,land,plz,strasse,ort,email,pwd,session,guthaben,refpunkte,bonuspunkte,extrapunkte,mailpunkte,mailsamtag,punkteabzug,geworbenvon,popuppunkte,jackpotpunkte,refpunkte1,refpunkte2,refpunkte3,refpunkte4,refpunkte5,refpunkte6,refpunkte7,refpunkte8,refpunkte9,refpunkte10,lastaction FROM mt_user ORDER BY ID") or exit(__FILE__." (".__LINE__."): ".mysql_error()); while ($DATA = mysql_fetch_array($result)) { $data_k = array(); $data_v = array(); $points_k = array(); $points_v = array(); foreach ($DATA as $key=>$value) { if ((intval($key) == "0") && ($key != "0")) { switch ($key) { case "ID": echo "User ".$value."...\n"; $data_k[] = "userid"; $data_v[] = $value; $ID = $value; break; case "user": $data_k[] = "nickname"; $data_v[] = $value; $NICK = $value; break; case "vorname": $data_k[] = "surname"; $data_v[] = $value; break; case "nachname": $data_k[] = "family"; $data_v[] = $value; break; case "land": $data_k[] = "country"; $data_v[] = $value; break; case "plz": $data_k[] = "zip"; $data_v[] = $value; break; case "strasse": $data_k[] = "street_nr"; $data_v[] = $value; break; case "ort": $data_k[] = "city"; $data_v[] = $value; break; case "email": $data_k[] = "email"; $data_v[] = $value; break; case "pwd": $data_k[] = "password"; $data_v[] = md5($value); break; case "mailsamtag": $data_k[] = "max_mails"; $data_v[] = $value; $data_k[] = "receive_mails"; $data_v[] = $value; break; case "lastaction": $data_k[] = "joined"; $data_v[] = $value; $data_k[] = "last_online"; $data_v[] = $value; $data_k[] = "last_module"; $data_v[] = "login"; $data_k[] = "last_update"; $data_v[] = $value; break; case "session": $data_k[] = "user_hash"; $data_v[] = $value; break; case "geworbenvon": $ref_res = mysql_query("SELECT ID FROM mt_user WHERE user='".$value."' LIMIT 1") or exit(__FILE__." (".__LINE__."): ".mysql_error()); list($value) = mysql_fetch_row($ref_res); if ($value == "") $value = "0"; $data_k[] = "refid"; $data_v[] = $value; break; /********* Ab hier Punkte! *********/ case "punkteabzug": $data_k[] = "used_points"; $data_v[] = abs($value); break; case "guthaben": $points_k['check'] = "check"; $points_v['check'] = $value; break; case "refpunkte": case "bonuspunkte": case "extrapunkte": case "mailpunkte": case "jackpotpunkte": case "popuppunkte": if (!in_array("points0", $points_k)) { $points_k[] = "points0"; } $pos = array_search("points0", $points_k); $points_v[$pos] += $value; break; case "refpunkte1": case "refpunkte2": case "refpunkte3": case "refpunkte4": case "refpunkte5": case "refpunkte6": case "refpunkte7": case "refpunkte8": case "refpunkte9": case "refpunkte10": $ref = substr($key, 9); $points_k[$ref] = "points".$ref.""; $points_v[$ref] = $value; break; default: echo "Spalte ".$key." mit Wert ".$value." konnte nicht konvertiert werden!
\n"; } } } $SQL = "INSERT INTO mxchange_user_data ("; foreach ($data_k as $key=>$value) { $SQL .= $value.","; } $SQL .= "status) VALUES ('"; foreach ($data_v as $key=>$value) { $SQL .= $value."','"; } $SQL .= "CONFIRMED');\n"; fwrite($fp, $SQL); $lvl0 = false; $lvl0_points = "0"; foreach ($points_v as $level=>$points) { if ($level != "check") { // Refs pruefen $result_ref = mysql_query("SELECT user FROM mt_refs WHERE ref".$level."='".$NICK."'") or exit(__FILE__." (".__LINE__."): ".mysql_error()); if ($points != "0.00") { $SQL1 = "INSERT INTO mxchange_user_points (userid,ref_depth,points) VALUES ('".$ID."','".$level."','".$points."');\n"; $SQL2 = "INSERT INTO mxchange_refsystem (userid,level,counter) VALUES('".$ID."','".$level."','".mysql_num_rows($result_ref)."');\n"; fwrite($fp, $SQL1); fwrite($fp, $SQL2); } } else { if (!$lvl0) { $lvl0_points = $points; $lvl0 = true; } else { $lvl0_points = $lvl0_points + $points; fwrite($fp, "INSERT INTO mxchange_user_points (userid,ref_depth,points) VALUES ('".$ID."','0','".$lvl0_points."');\n"); $lvl0_points = "0"; $lvl0 = false; } } } } // Alles klar! (hoffentlich?) echo "OKAY
\n"; fclose($fp); // Und wieder zu damit... mysql_close($db); echo "
\n"; echo "Datei tmp/mxchange-db.sql mit ".filesize("tmp/mxchange-db.sql")." Bytes erzeugt.

Datenkonvertierung abgeschlossen...

Bevor Sie jedoch den Dump einspielen, müssen Sie unbedingt die nickname-Erweiterung meines Scriptes eingerichtet haben! Anderfalls kommt es zu Fehlermeldungen und die User-Daten konnten nicht importiert werden.\n"; // ?>