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";
//
?>