Voici un code qui permet d'exporter une table d'une base de données vers un fichier .csv. En rouge, les données à modifier manuellement pour adapter le code à votre Base de données. Désolée pour le look "total-noir", je cherche un module de coloration syntaxique à installer sur le blog.

 

<?php

//-------- CONFIG -----------------------------

$file_export = "Nom_que_vous_voulez_donner_a_l_export_".date("Y-m-d");  // indiquez le nom à donner à l'export.csv

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$file_export.".csv");

$db=array(); // on fait un tableau $db   
$db['user']='root';       //  indiquez ici l'identifiant de connexion
$db['host']='localhost';  //  indiquez ici l'hôte
$db['pass']= 'pass';      //  indiquez ici le mot de passe de connexion
$db['base']='nom_base';   // indiquez ici le nom de la bdd
$table="nom_table";       // indiquez ici le nom de la table à exporter

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$table."_".date("Y-m-d").".csv");                    

//-------- FONCTIONS -----------------------------

//fonction pour se connecter a la base de données

function database_connect($db)
{
    $link=mysql_connect($db['host'],$db['user'],$db['pass'])or die ("connexion impossible : erreur ! ");
    mysql_select_db($db['base']);
    return $link; // return va juste dire : true si ca a marché, ou ce qu'il y a marqué dans 'or die' si ca a échoué
}

// fonction de deconnection de la base de données
function database_disconnect($link)
{
    mysql_close($link);
}

//-------- EXPORT DE LA TABLE -------------------------

//Export des entêtes de colonnes
$link=database_connect($db); // on se connecte à la base de donnée
$file = 'export';
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0)
    {
        while ($row = mysql_fetch_assoc($result))
        {
            $csv_output .= $row['Field'].";";
            $i++;
        }
    }

$csv_output .= "\n";

 //Export des données de la table
$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values))
    {
        for ($j=0;$j<$i;$j++)
        {
            $csv_output .= $rowr[$j].";";
        }
        $csv_output .= "\n";
    }

print $csv_output;
exit;

?>
Retour à l'accueil