MYSQL vers EXCEL [Résolu]

Messages postés
44
Date d'inscription
mercredi 13 octobre 2010
Dernière intervention
6 juillet 2011
- - Dernière réponse : cod57
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
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";
}
?>
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
12
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 111 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cod57
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
12
0
Merci
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;
?>
Commenter la réponse de cod57
Messages postés
44
Date d'inscription
mercredi 13 octobre 2010
Dernière intervention
6 juillet 2011
0
Merci
Ok...je vais essayer....Et ton fichier est généré a quel endroit??
Commenter la réponse de quinton75
Messages postés
44
Date d'inscription
mercredi 13 octobre 2010
Dernière intervention
6 juillet 2011
0
Merci
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
Commenter la réponse de quinton75
Messages postés
44
Date d'inscription
mercredi 13 octobre 2010
Dernière intervention
6 juillet 2011
0
Merci
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");
Commenter la réponse de quinton75
Messages postés
44
Date d'inscription
mercredi 13 octobre 2010
Dernière intervention
6 juillet 2011
0
Merci
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
Commenter la réponse de quinton75
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
12
0
Merci
s.t.p. accepte la reponse merci a++
Commenter la réponse de cod57

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.