#!/usr/bin/php
<?php

$inicfg = parse_ini_file("/etc/lms/lms.ini", true);

mysql_connect("localhost", $inicfg['database']['user'], $inicfg['database']['password']) or die(mysql_error());
mysql_select_db($inicfg['database']['database']) or die(mysql_error());
mysql_query("SET names utf8");

$tables = array("assignments", "cash", "customerassignments", "customercontacts", "customergroups", "customers", "divisions", "docrights", 
		"documents", "events", "hosts", "invoicecontents", "macs", "nastypes", "netdevices", "netlinks", "networks", "nodeassignments", 
		"nodegroupassignments", "nodegroups", "nodes", "numberplanassignments", "numberplans", "rtmessages", "rtnotes", "rtqueues", 
		"rtrights", "rttickets", "tariffs", "taxes", "users", "documentcontents");

$order = array('users', 'customers', 'customergroups', 'nodes', 'numberplans',
               'assignments', 'rtqueues', 'rttickets', 'rtmessages', 'domains',
               'cashsources');

foreach ($tables as $idx => $table) {
    if (in_array($table, $order)) {
        unset($tables[$idx]);
    }
}

$tables = array_merge($order, $tables);

$dumpfile = gzopen("dbexport.mysql.gz",'w');

foreach($tables as $tablename) {

    $res = mysql_query("SELECT * FROM ".$tablename);
    fputs($dumpfile, "DELETE FROM $tablename;\n");
    while($row = mysql_fetch_assoc($res)) {
	fputs($dumpfile, "INSERT INTO $tablename (");
        foreach($row as $field => $value) {
            $fields[] = $field;
            if(isset($value))
                $values[] = "'".addcslashes($value,"\r\n\'\"\\")."'";
            else
                $values[] = 'NULL';
        }
        fputs($dumpfile,implode(', ',$fields));
        fputs($dumpfile,') VALUES (');
        fputs($dumpfile,implode(', ',$values));
        fputs($dumpfile,");\n");
        unset($fields);
        unset($values);
    }

}

fputs($dumpfile, "UPDATE nastypes SET id=1000000 WHERE id=3;\n");
fputs($dumpfile, "UPDATE netdevices SET nastype=1000000 WHERE nastype=3;\n");

gzclose($dumpfile);

mysql_close();

?>
