Bonjour !
J'ai un site internet où des agents immobiliers remplissent un formulaire pour m'informer de la vente d'un appartement. Mon formulaire fonctionne bien et inscrit les données dans la Base de Données (1&1). Je voudrais récupérer les données de ma BDD dans un fichier excel. J'ai donc vu que l'on pouvait le faire avec le format sylk (.slk).
Je viens de créer ce fichier en m'aidant du site
http://www.phpinfo.net/page/archives/articles/de-mysql-a-excel-via-php-et-sylk/
Cependant, ça ne marche pas:
Code: 

- <?php
-
- // ----------------------------------------------------------------------------
-
- define("FORMAT_REEL", 1); // #,##0.00
- define("FORMAT_ENTIER", 2); // #,##0
- define("FORMAT_TEXTE", 3); // @
-
- $cfg_formats[FORMAT_ENTIER] = "FF0";
- $cfg_formats[FORMAT_REEL] = "FF2";
- $cfg_formats[FORMAT_TEXTE] = "FG0";
-
- // ----------------------------------------------------------------------------
-
- $cfg_hote = 'db853.1and1.fr';
- $cfg_user = 'dbo205034216';
- $cfg_pass = '*******';
- $cfg_base = 'db205034216';
-
- // ----------------------------------------------------------------------------
-
- if (mysql_connect($cfg_hote, $cfg_user, $cfg_pass))
- {
- // construction de la requête
- // ------------------------------------------------------------------------
- $sql = "SELECT nom_agence, ville_agence, nom_client, adresse_client, date, mail_agence, ref, remarques ";
- $sql .= "FROM clients_villaparc ";
-
- // définition des différentes colonnes de données
- // ------------------------------------------------------------------------
- $champs = Array(
- // champ en-tête format alignement largeur
- Array( 'date' 'Date' FORMAT_ENTIER, 'R', 10),
- Array( 'nom_agence', 'Agence', FORMAT_ENTIER, 'R', 20 ),
- Array( 'ville_agence', 'Ville', FORMAT_TEXTE, 'L', 20 ),
- Array( 'ref', 'Référence', FORMAT_TEXTE, 'L', 20 ),
- Array( 'nom_client', 'Client', FORMAT_TEXTE, 'L', 20 ),
- Array( 'adresse_client', 'Adresse client', FORMAT_TEXTE, 'C', 20 ),
- Array( 'mail_agence', 'Mail agence', FORMAT_TEXTE, 'C', 20 ),
- Array( 'remarques', 'Remarques', FORMAT_TEXTE, 'C', 20 )
-
-
- );
- // ------------------------------------------------------------------------
-
-
- if ($resultat = mysql_db_query($cfg_base, $sql))
- {
- // en-tête HTTP
- // --------------------------------------------------------------------
- header('Content-disposition: filename=astuces.slk');
- header('Content-type: application/octetstream');
- header('Pragma: no-cache');
- header('Expires: 0');
-
- // en-tête du fichier SYLK
- // --------------------------------------------------------------------
- echo "ID;PASTUCES-phpInfo.net\n"; // ID;Pappli
- echo "\n";
- // formats
- echo "P;PGeneral\n";
- echo "P;P#,##0.00\n"; // P;Pformat_1 (reels)
- echo "P;P#,##0\n"; // P;Pformat_2 (entiers)
- echo "P;P@\n"; // P;Pformat_3 (textes)
- echo "\n";
- // polices
- echo "P;EArial;M200\n";
- echo "P;EArial;M200\n";
- echo "P;EArial;M200\n";
- echo "P;FArial;M200;SB\n";
- echo "\n";
- // nb lignes * nb colonnes : B;Yligmax;Xcolmax
- echo "B;Y".(mysql_num_rows($resultat)+1);
- echo ";X".($nbcol = mysql_num_fields($resultat))."\n";
- echo "\n";
-
- // récupération des infos de formatage des colonnes
- // --------------------------------------------------------------------
- for ($cpt = 0; $cpt < $nbcol; $cpt++)
- {
- $num_format[$cpt] = $champs[$cpt][2];
- $format[$cpt] = $cfg_formats[$num_format[$cpt]].$champs[$cpt][3];
- }
-
- // largeurs des colonnes
- // --------------------------------------------------------------------
- for ($cpt = 1; $cpt <= $nbcol; $cpt++)
- {
- // F;Wcoldeb colfin largeur
- echo "F;W".$cpt." ".$cpt." ".$champs[$cpt-1][4]."\n";
- }
- echo "F;W".$cpt." 256 8\n"; // F;Wcoldeb colfin largeur
- echo "\n";
-
- // en-tête des colonnes (en gras --> SDM4)
- // --------------------------------------------------------------------
- for ($cpt = 1; $cpt <= $nbcol; $cpt++)
- {
- echo "F;SDM4;FG0C;".($cpt == 1 ? "Y1;" : "")."X".$cpt."\n";
- echo "C;N;K"".$champs[$cpt-1][1].""\n";
- }
- echo "\n";
-
- // données utiles
- // --------------------------------------------------------------------
- $ligne = 2;
- while ($enr = mysql_fetch_array($resultat))
- {
- // parcours des champs
- for ($cpt = 0; $cpt < $nbcol; $cpt++)
- {
- // format
- echo "F;P".$num_format[$cpt].";".$format[$cpt];
- echo ($cpt == 0 ? ";Y".$ligne : "").";X".($cpt+1)."\n";
- // valeur
- if ($num_format[$cpt] == FORMAT_TEXTE)
- echo "C;N;K"".str_replace(';', ';;', $enr[$cpt]).""\n";
- else
- echo "C;N;K".$enr[$cpt]."\n";
- }
- echo "\n";
- $ligne++;
- }
-
- // fin du fichier
- // --------------------------------------------------------------------
- echo "E\n";
- }
-
- mysql_close();
- }
-
- ?>
Pourquoi ?
Merci à vous !
@+
Larry ;)