|
|
|
|
miltonis, le vendredi 16 mai 2008 à 10:19:19Configuration: Windows Vista Firefox 2.0.0.14
La structure de ton script doit être différente.
Ci-dessous un exemple à décortiquer :
<?php
require_once("test_conf_int.php");
$bdd = mysql_connect( $DBHost, $DBUser, $DBPas s);
mysql_select_db( (DB), $bdd );
$requete = @mysql_query( "SELECT name, username, email FROM jos_users" )
OR DIE( "erreur : " . mysql_error( $bdd ) );
// on vérifie le contenu de la requête, si elle est vide, on en informe l'utilisateur à l'aide d'un Javascript
if( @mysql_numrows( $requete ) == 0)
echo "La requête ne retourne aucun enregistrement";
else
{
// contenu --> $resultat
$resultat = "";
$rang = 0;
while( ($line = mysql_fetch_assoc($requete)) )
{
$ligne = '';
if( $rang == 0 )
{ // entêtes de colonne
foreach( array_keys( $line ) as $lEntete )
{
if( $ligne != '' ) $ligne .= ';';
$ligne .= $lEntete;
}
$resultat .= $ligne;
}
else
{ // données
foreach( $line as $key=>$value )
{
if( $ligne != '' ) $ligne .= ';';
if( !isset( $value ) OR $value=='' )
$value = '';
else
{
if( substr( $key,0,4) == "date" )
{
$laDate = explode( "-", $value );
$value = $laDate[1] . "/" . $laDate[0];
}
}
$ligne .= '"' . str_replace( '"', '""', utf8_decode( $value ) ) . '"';
}
}
$resultat .= chr(10) . $ligne;
$rang++;
}
// transcodage (laborieux!) iso-8859-1 >>> code Excel ????
// peut-être pas nécessaire selon codage base etc...
$leS = "";
for( $i=0; $i<strlen($resultat); $i++ )
{
$leCar = substr( $resultat, $i, 1 );
switch( ord( $leCar ) )
{
case 0xA7 :
$leCar = chr( 0xa4 );
break;
case 0xB0 :
$leCar = chr( 0xa1 );
break;
case 0xE0 :
$leCar = chr( 0x88 );
break;
case 0xE2 :
$leCar = chr( 0x89 );
break;
case 0xE4 :
$leCar = chr( 0x8A );
break;
case 0xE7 :
$leCar = chr( 0x8d );
break;
case 0xE8 :
$leCar = chr( 0x8f );
break;
case 0xE9 :
$leCar = chr( 0x8e );
break;
case 0xEA :
$leCar = chr( 0x90 );
break;
case 0xEB :
$leCar = chr( 0x91 );
break;
case 0xEF :
$leCar = chr( 0x95 );
break;
case 0xE2 :
$leCar = chr( 0x89 );
break;
case 0xF4 :
$leCar = chr( 0x99 );
break;
case 0xF6 :
$leCar = chr( 0x9A );
break;
case 0xF9 :
$leCar = chr( 0x9d );
break;
case 0xFB :
$leCar = chr( 0x9e );
break;
case 0xFC :
$leCar = chr( 0x9F );
break;
}
$leS .= $leCar;
}
// téléchargement et ouverture dans Excel du fichier
header("Cache-Control: cache, must-revalidate");
header("Pragma: public");
header('Content-Type: application/excel');
header("Content-disposition: inline; filename=" . date("Y-m-d") . ".csv");
echo $leS;
exit;
}
}
?>
|
Merci de ta réponse Croy,
J'ai testé ton code mais ça n'a pas l'air de fonctionner... il faut dire que je travaille sur un site Joomla, du coup le message est "access restricted"... |
STOP !!!
pas la peine de chercher plus loin ! Voici quelque chose qui marche (aussi), en tout cas sur mon serveur, si ça peut en aider certains : <?
//ce fichier montre un exemple permettant de generer un fichier excel (on peut remplacer le .csv par .xls)
//parametres de connexion a la bdd
include("test_02.php");
//defined( '_VALID_MOS' ) or die( 'Restricted access' );
//Premiere ligne = nom des champs (si on en a besoin)
$csv_output = "LOGIN; PASS";
$csv_output .= "\n";
//Requete SQL
$query = "SELECT login, pass FROM user";
$result = mysql_query($query)
or die('Erreur SQL !<br />' . $query . '<br />' . mysql_error());
//Boucle sur les resultats
while($row = mysql_fetch_array($result)) {
//$csv_output .= "$row[p_nom] $row[p_prenom],$row[p_nom],$row[p_prenom],$row[p_email]\n";
$csv_output .= "$row[login];$row[pass]\n";
}
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=AddressBook_" . date("Ymd").".csv");
print $csv_output;
exit;
?>
merci de ton aide en tout cas Croy a++ |
| 27/03 16h03 | [PHP] Méthodes de débogage | PHP |
| 15/03 20h06 | Import / export de données Ingres | Ingres |
| 03/04 20h30 | Transformer un fichier Microsoft Excel (.xls) en PDF | OpenOffice.org |
| 27/10 00h37 | [PHP] Les ressemblances à ne pas confondre | PHP |
| 13/06 09h53 | [PHP] Lister le contenu d'un répertoire | PHP |
| 08/05 16h53 | Exportation Sql Excel via php | 0 |
| 17/05 16h43 | [php] Exportation de php/sql vers Excel | 9 |
| 08/04 00h22 | [php/sql] export table sql vers csv/xls | 1 |
| 07/10 15h48 | Exportation mySQL vers excel via PHP | 9 |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | Excel Viewer - Avec Microsoft Office Excel Viewer 2003, vous pouvez ouvrir, afficher et imprimer des classeurs Excel (fichiers XLS ), même... | Catégorie: Tableur Licence: Freeware/gratuit |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 72.51 € Amazon.fr |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 16.74 € Misco FR |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 23.85 € Amazon.fr |
![]() | Sony Micro Vault Excellence | Catégorie: Carte Mémoire / Clé USB | 38.99 € PriceMinister |