MYSQL vers EXCEL

Résolu
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011 - 8 févr. 2011 à 12:06
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 - 8 févr. 2011 à 16:20
Je souhaite exporter ma table sql vers excel via une requete php avec le code suivant mais ça ne marche pas..

Je souhaite en fait générer le fichier excel dans le meme dossier que le fichier php.

<?php
function export_excel_csv()
{
    $conn = mysql_connect("legtux.org","root","mdp");
    $db = mysql_select_db("localhost",$conn);
    
    $sql = "SELECT * FROM table";
    $rec = mysql_query($sql) or die (mysql_error());
    
    $num_fields = mysql_num_fields($rec);
    
    for($i = 0; $i < $num_fields; $i++ )
    {
        $header .= mysql_field_name($rec,$i)."\t";
    }
    
    while($row = mysql_fetch_row($rec))
    {
        $line = '';
        foreach($row as $value)
        {                                            
            if((!isset($value)) || ($value == ""))
            {
                $value = "\t";
            }
            else
            {
                $value = str_replace( '"' , '""' , $value );
                $value = '"' . $value . '"' . "\t";
            }
            $line .= $value;
        }
        $data .= trim( $line ) . "\n";
    }
    
    $data = str_replace("\r" , "" , $data);
    
    if ($data == "")
    {
        $data = "\n No Record Found!n";                        
    }
    
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=reports.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    print "$header\n$data";
}
?>

7 réponses

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 févr. 2011 à 14:47
ce petit bout de code doit etre dans un fichier excel.php et rien autour
tu fais un lien [excel.php excel export] dans le fichier 1 ...
puis ça marche
3
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 févr. 2011 à 13:44
bonjour
ce bout marche chez moi ...
a++
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'test';
$table = 'infos';
$file = 'export';

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$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";

$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";
}

$filename = $file."_".date("Y-m-d_H-i",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>
0
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
8 févr. 2011 à 14:13
Ok...je vais essayer....Et ton fichier est généré a quel endroit??
0
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
8 févr. 2011 à 14:19
j'ai des erreurs

Warning: Cannot modify header information - headers already sent by (output started at /var/www/legtux.org/users/plesouder/smartbox_validation.php:4) in /var/www/legtux.org/users/plesouder/smartbox_validation.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at /var/www/legtux.org/users/plesouder/smartbox_validation.php:4) in /var/www/legtux.org/users/plesouder/smartbox_validation.php on line 35

Warning: Cannot modify header information - headers already sent by (output started at /var/www/legtux.org/users/plesouder/smartbox_validation.php:4) in /var/www/legtux.org/users/plesouder/smartbox_validation.php on line 36
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
8 févr. 2011 à 14:23
ca correspond a ces 3 lignes
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
0
quinton75 Messages postés 44 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 6 juillet 2011
8 févr. 2011 à 15:30
yes.....Merci effectivement le code ne marche pas avec du code autour.....

Merci bcp cod57.

En fait ce que je souhaite faire, c'est créer une fonction qui aille cherhcher dans le fichier excel la colonne gencod.Une fois le gencod récupéré, allez sur une page web pour checker si le code a été consommé ou non.

En gros, c'est le meme principe que si j'essaie de me logguer sur un site
exemple fnac ( https://www.fnac.com/account/logon/logon.asp?NID=-15&RNID=-15&PrevNID=0&pagepar=NID%3D%252D10|RNID%3D%252D10|SID%3D4cf2334a%252D2071%252D1b66%252D6d35%252Dcbad523efd39|Origin%3Dfnac%255Fgoogle%255Fhome|OrderInSession%3D1|TTL%3D090220111516|bl%3DHGACtopMenucompte&PageRedir=https://www.fnac.com/Account/Profil/default.asp&PageAuth=yes&LogonType=ACCOUNT ).

Si non valide, un message apparait en dessous.

Donc en fait, je souhaite envoyé le gencod sur un site, vérifier si il a été consommé ou non et ensuite récupéré sa réponse en dessous "consommé" ou "non consommé" et le renvoyer sur excel....


Un peu compliqué comme méthode j'imagine.... Peut etre que faire une macro serait un solution
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
8 févr. 2011 à 16:20
s.t.p. accepte la reponse merci a++
0
Rejoignez-nous