Scripts

HELE Database in XLS

Op verzoek van enkelen ben ik vandaag even verder gaan knutselen. het is een vervolg op linkje.

hele-database-in-xls
functions.php[code]<?php


function createXLS($tabel,$db)
{
	if($tabel == '*' || $tabel == 'ALL')
	{
		// Database query
		$qXLS = "SHOW TABLES";
		$rXLS = mysql_query($qXLS);
		
		// Array genereren met namen tabellen
		$tabel = array();
		while($table = mysql_fetch_array($rXLS))
		{
			$tabel[] = $table[0];
		}
		
		// Copyright
		$output = "Database ".strtoupper($db)." geconverteerd naar .xls door Roel Moser";
		$output .= "\n\n";	
		
			
		foreach($tabel as $nummer => $naam)
		{
			// Database query
			$qXLS = "SELECT * FROM ".$naam;
			$rXLS = mysql_query($qXLS);
			
			$velden = mysql_list_fields($db,$naam);
			
			$kolommen = mysql_num_fields($velden);
			
			// Tabeltitel
			$output .= "-- TABEL : ".strtoupper($naam)." --";
			$output .= "\n";
			
			// Veldnamen
			for ($i = 0; $i < $kolommen; $i++) 
			{
				$l = mysql_field_name($velden, $i);
				$output .= $l."\t";
			}
			$output .= "\n";
			
			// DB gegevens
			while ($l = mysql_fetch_array($rXLS))
			{
				$total = count($l);
				for ($i = 0; $i < $kolommen; $i++) 
				{	
						$output .= $l[$i]."\t";
				}					
				$output .= "\n";
			}
			$output .= "\n\n\n";
		}		
		
	}
	else
	{
		if(!is_array($tabel))
		{
			echo "Input moet een array zijn.";
		}
		else
		{
			// Copyright		
			$output = "Database ".strtoupper($db)." geconverteerd naar .xls door Roel Moser";
			$output .= "\n\n";
			foreach($tabel as $naam)
			{
				// Database query
				$qXLS = "SELECT * FROM ".$naam;
				$rXLS = mysql_query($qXLS);
				
				$velden = mysql_list_fields($db,$naam);
				
				$kolommen = mysql_num_fields($velden);
				
				// Tabeltitel
				$output .= "-- TABEL : ".strtoupper($naam)." --";
				$output .= "\n";
				
				// Veldnamen
				for ($i = 0; $i < $kolommen; $i++) 
				{
					$l = mysql_field_name($velden, $i);
					$output .= $l."\t";
				}
				$output .= "\n";
				
				// DB gegevens
				while ($l = mysql_fetch_array($rXLS))
				{
					$total = count($l);
					for ($i = 0; $i < $kolommen; $i++) 
					{	
							$output .= $l[$i]."\t";
					}					
					$output .= "\n";
				}
				$output .= "\n\n\n";
			}
		}
	}	
	// In xls stoppen
	$f = fopen ('Database.xls','w');
	
	fputs($f, $output);
	fclose($f);
	
	header('Content-type: application/vnd.ms-excel');
	header('Content-Disposition: attachment; filename="Database.xls"');
	readfile('Database.xls');
}

?>[/code]sqlxls_test.php (de selects kunnen natuurlijk ook met php worden opgehaald, niet handmatig. Hier had ik echter geen zin in :).[code]<?php
// PHP Errors tonen
error_reporting(E_ALL); 
ini_set("display_errors", 1);

// Database 
include("_config.inc.php");
include("functions.php");
/*
'gebruikers','bedrijven');
	$db = 'PhphulpXLS';
	createXLS('*',$db);
	*/
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	
	if($_POST['wat'] == 'NONE' && !empty($_POST['tabel']))
	{
		$tabel = $_POST['tabel'];
		$kolom = array();
		foreach($tabel as $naam)
		{
			if(isset($naam))
			{
				$kolom[] = $naam;
			}
		}
		$db = 'PhphulpXLS';
		createXLS($kolom,$db);		
	}
	elseif($_POST['wat'] != 'NONE')
	{
		if($_POST['wat'] != 'ALL')
		{
			$kolom = array($_POST['wat']);
			$db = 'PhphulpXLS';
			createXLS($kolom,$db);	
		}
		else
		{
			$db = 'PhphulpXLS';
			createXLS('ALL',$db);	
		}		
	}
	else
	{
		echo "Vul je wel even wat in?! <a href='sqlxls_test.php'>Ga terug</a>";
	}
}

// BELANGRIJK!!!
if($_SERVER['REQUEST_METHOD'] != 'POST') 
{
?>
<form name='sqlxls' method="post">
	<select name="wat">
    	<option value="NONE">--------------------------------</option>
        <option value='ALL'>Hele database</option>
        <option value='bedrijven'>Tabel: bedrijven</option>
        <option value='gegevens'>Hele Tabel: gegevens</option>
        <option value='gebruikers'>Hele Tabel: gebruikers</option>                        
    </select><br /><br /><br />

    of: meerdere tabellen:<br /><br /><br />

    
    <input type="checkbox" name="tabel[]" value="bedrijven" /> Bedrijven<br />
    <input type="checkbox" name="tabel[]" value="gegevens" /> Gegevens<br />
    <input type="checkbox" name="tabel[]" value="gebruikers" /> Gebruikers<br />  
    
    
<br /><input type="submit" name="button" value="Geef mij die XLS!" />
</form>	
<?php
}
?>

[/code]_config.inc.php[code]<?php
$password = '@@@@@@t';
$user = '@@@@@@';
$db = 'PhphulpXLS';
$host = 'localhost';
$mysql = mysql_connect($host,$user,$password) or die("Er is een fout opgetreden bij het verbinden met de database!");

mysql_select_db($db) or die("Database bestaat niet!");
?>[/code]

Reacties

0
Nog geen reacties.