<?php

/********************************************************************************
	- MemHT Portal -
	
	Copyright (C) 2007-2008 by Miltenovik Manojlo
	http://www.memht.com
	
	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your opinion) any later version.
	
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License along
	with this program; if not, see <http://www.gnu.org/licenses/> (GPLv2)
	or write to the Free Software Foundation, Inc., 51 Franklin Street,
	Fifth Floor, Boston, MA02110-1301, USA.
		
********************************************************************************/

if (stristr(htmlentities($_SERVER['PHP_SELF']), "inc_functions.php")) {
	die("<table style='padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;' align='center'><tr><td><b>Error:</b> This file cannot be opened directly!</td></tr></table>");
}

function getDump($onlyData,$deleteInc) {
	global $db_host,$db_name,$userid;
	
	if (isAuth($userid,2)) {
		$nl = "\n";
			
		$dump = "-- ---------------------------------------------------------------------$nl";
		$dump .= "-- MemHT Portal$nl";
		$dump .= "-- Copyright (C) 2007-2008 by Miltenovik Manojlo$nl";
		$dump .= "-- http://www.memht.com$nl$nl";	
		$dump .= "-- This program is free software; you can redistribute it and/or modify$nl";
		$dump .= "-- it under the terms of the GNU General Public License as published by$nl";
		$dump .= "-- the Free Software Foundation; either version 2 of the License, or$nl";
		$dump .= "-- (at your opinion) any later version.$nl$nl";
		$dump .= "-- This program is distributed in the hope that it will be useful,$nl";
		$dump .= "-- but WITHOUT ANY WARRANTY; without even the implied warranty of$nl";
		$dump .= "-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the$nl";
		$dump .= "-- GNU General Public License for more details.$nl$nl";
		$dump .= "-- You should have received a copy of the GNU General Public License along$nl";
		$dump .= "-- with this program; if not, see <http://www.gnu.org/licenses/> (GPLv2)$nl";
		$dump .= "-- or write to the Free Software Foundation, Inc., 51 Franklin Street,$nl";
		$dump .= "-- Fifth Floor, Boston, MA02110-1301, USA.$nl";
		$dump .= "-- ---------------------------------------------------------------------$nl";
		$dump .= "-- Host: $db_host$nl";
		$dump .= "-- Database: $db_name$nl";
		$dump .= "-- Time: ".@date(Y.".".m.".".d)."-".@date(H.".".i)."$nl";
		$dump .= "-- ---------------------------------------------------------------------$nl$nl";
		
		$i = 0;
		$result = mysql_list_tables($db_name);
		while ($i < mysql_num_rows($result)) {
			$name_table = mysql_table_name($result, $i);
			$showresult = mysql_query("SHOW CREATE TABLE $name_table");
			while ($show = mysql_fetch_row($showresult)) {
				// Don't dump table structure if we only should dump the data
				if ($onlyData == false) {
					//Structure
					$dump .= "-- --------------------------------------------------$nl";
					$dump .= "-- Structure table `".$show[0]."`$nl";
					$dump .= "-- --------------------------------------------------$nl";
					$dump .= "DROP TABLE IF EXISTS `".$show[0]."`;".$nl;
					$dump .= $show[1].";$nl$nl";
				}
				
				$firstRow = 1;
				$insres = mysql_query("SELECT * FROM $name_table");
				while ($insrow = mysql_fetch_row($insres)) {
				    if ($firstRow == 1) {
						// It's the first row, generate Data header and more
						$dump .= "-- --------------------------------------------------$nl";
						$dump .= "-- Data table `".$show[0]."`$nl";
						$dump .= "-- --------------------------------------------------$nl";
						
						// Generate the delete statement
						if ($deleteInc == true) {
							$dump .= "TRUNCATE `$name_table`;$nl";
						}
						
						// Generate the insert statement
						$dump .= "INSERT INTO `$name_table` (";
						$numfields = mysql_num_fields($insres);
					
						for ($j=0;$j<$numfields;$j++) {
							$dump .= "`".mysql_field_name($insres,$j)."`";
							if ($j<$numfields-1) { $dump .= ","; }
						}
						$dump .= ") VALUES$nl";
					}
					else {
						// It's not the first row, so  a row has already been exported. Add a comma and a newline
						$dump .= ",$nl";
					}
					
					// Insert these values
					$dump .= "(";
					for ($j=0;$j<$numfields;$j++) {
						$dump .= "'".addslashes($insrow[$j])."'";
						if ($j<$numfields-1) { $dump .= ","; }
					}
					$dump .= ")";
					$firstRow = 0;
				}
				// Add a closing ; if we exported at least one row
				if ($firstRow == 0) {
					$dump .= ";$nl$nl";
				}
			}
			$i++;
		}
		return $dump;
	} else {
		return "Access Denied!";
	}
}

?>
