Thursday 14 February 2013

Export MySQL to Excel Using PHP

Export MySQL to Excel Using PHP

The code below will export every column name and value from your database into an excel document.
Note: Delete the line spaces if you receive a parse error.

<?php
/*******EDIT LINES TO CONFIGURE YOUR DB*******/
$DB_Server = "localhost"; //MySQL Server 
$DB_Username = "username"; //MySQL Username 
$DB_Password = "password"; //MySQL Password 
$DB_DBName = "databasename"; //MySQL Database Name 
$DB_TBLName = "tablename"; //MySQL Table Name
$filename = "excelfilename"; //File Name

/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/

//create MySQL connection
$sql = "Select * from $DB_TBLName";

$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());

//select database
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());

//execute query
$result = @mysql_query($sql,$Connect)or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());

$file_ending = "xls";
//header info for browser
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$filename.xls");
header("Pragma: no-cache");
header("Expires: 0");
 
/*******Start of Formatting for Excel*******/
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character
//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++)
{
echo mysql_field_name($result,$i) . "\t";
}
print("\n");

//end of printing column names
//start while loop to get data
    while($row = mysql_fetch_row($result))
    {
        $schema_insert = "";
        for($j=0; $j<mysql_num_fields($result);$j++)
        {
            if(!isset($row[$j]))
                $schema_insert .= "NULL".$sep;
            elseif ($row[$j] != "")
                $schema_insert .= "$row[$j]".$sep;
            else
                $schema_insert .= "".$sep;
        }
        $schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
        $schema_insert .= "\t";
        print(trim($schema_insert));
        print "\n";
    }
?>

No comments:

Post a Comment