Donnée de ma base sql en fichier csv
sinifer
Messages postés
323
Statut
Membre
-
sinifer Messages postés 323 Statut Membre -
sinifer Messages postés 323 Statut Membre -
Bonjour,
voilà j'ai un problème sur mon passage des donées de ma bases dans un fichier csv j'ai récupérer ce code et je l'ai reformuler pour qu'il marche mais ce n'est pas le cas, il n'y a rien dans mon affichage et je récupère pas de fichier table.csv
de plus dans ma fonction je fais une séparation pour que ce soient des tabs qui séparent et pas des ; ou autres
voilà plusieur heur que je suis sur ce problème sans en voir l'issue si quelqu'un pourrait m'éclairer je serait heureu merci
PS: est-il possible de faire un affichage tablea???
voilà j'ai un problème sur mon passage des donées de ma bases dans un fichier csv j'ai récupérer ce code et je l'ai reformuler pour qu'il marche mais ce n'est pas le cas, il n'y a rien dans mon affichage et je récupère pas de fichier table.csv
de plus dans ma fonction je fais une séparation pour que ce soient des tabs qui séparent et pas des ; ou autres
<?php
// ----------------------------------------------------------------------
// Liste les données de la table dans un fichier CSV
// Paramètres: une requete qui marche avec seulement les champs souhaités
// separateur des champs (optionnel) par défaut ";"
// ----------------------------------------------------------------------
function ExportCsv($Query, $separateur=" ") {
ini_set ("max_execution_time ", "45") ;
if (!$Query) {
echo "<br/>Requete vide !!!<br/>";
return false;
}
$resQuery = pg_query($Query);
if (!$resQuery) {
echo "<br/>Erreur dans cette requete !!!<br/>";
return false;
}
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");
if (pg_num_rows($resQuery) != 0) {
// titre des colonnes
$fields = pg_num_fields($resQuery);
$i = 0;
while ($i < $fields) {
echo pg_field_name($resQuery, $i)." ".$separateur;
$i++;
}
echo "\n";
// données de la table
while ($arrSelect = pg_fetch_array($resQuery)) {
/*foreach($arrSelect as $elem) {
echo "$elem"." ".$separateur;
}*///fin foreach
$i=0;
while ($i < $fields) {
echo $arrSelect[$i]." ".$separateur;
$i++;
}
echo "\n";
}//fin while
}//fin if
return true;
}//fin de la jolie fonction
?>
<?php
// Liste les données de la table
// -------------------------------------------
$Query = mysql_query("SELECT * FROM en_customers");
?>
<?php ExportCsv($Query, $separateur); ?>
voilà plusieur heur que je suis sur ce problème sans en voir l'issue si quelqu'un pourrait m'éclairer je serait heureu merci
PS: est-il possible de faire un affichage tablea???
A voir également:
- Donnée de ma base sql en fichier csv
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
20 réponses
Bonjour
Je ne vois pas où tu as mis de TAB : ta variable $separateur n'est pas initialisée.
modifie :
<?php ExportCsv($Query, "\t"); ?>
Et tu ne fais pas du vrai csv avec ce script (tu ne protèges pas les tab et les CR - LF dans tes données) mais ça a des chances de marcher quand même si tes données n'ont aucun piège
Ce serait sûrement bien plus simple et plus fiable d'utiliser les fonction csv toutes faites de PHP.
Je ne vois pas où tu as mis de TAB : ta variable $separateur n'est pas initialisée.
modifie :
<?php ExportCsv($Query, "\t"); ?>
Et tu ne fais pas du vrai csv avec ce script (tu ne protèges pas les tab et les CR - LF dans tes données) mais ça a des chances de marcher quand même si tes données n'ont aucun piège
Ce serait sûrement bien plus simple et plus fiable d'utiliser les fonction csv toutes faites de PHP.
Bonjours et merci de ta réponse
ce sont lesquels les fonctions a utilisé??
d'ailleur je cherche a mettre mes données comme si c'estais un taleau et je vois pas comment fair si ta un tuto le montran ce serai cool
Ce serait sûrement bien plus simple et plus fiable d'utiliser les fonction csv toutes faites de PHP.
ce sont lesquels les fonctions a utilisé??
d'ailleur je cherche a mettre mes données comme si c'estais un taleau et je vois pas comment fair si ta un tuto le montran ce serai cool
La principale fonction à utiliser est fputcsv:
https://www.php.net/manual/fr/function.fputcsv.php
Si tu ne te sens pas à l'aise avec, oublie et contente-toi de la modif du "\t"
Pour le tuto, je n'ai pas d'adresse toute faite mais "le site du zéro" a bonne réputation, tu trouveras sûrement ton bonheur
https://www.php.net/manual/fr/function.fputcsv.php
Si tu ne te sens pas à l'aise avec, oublie et contente-toi de la modif du "\t"
Pour le tuto, je n'ai pas d'adresse toute faite mais "le site du zéro" a bonne réputation, tu trouveras sûrement ton bonheur
malheureusement j'ai déjà regardé mais rien trouvé pour ce style d'affichage si tu pouvais me mettre sur une piste ce serai gentille
mais le problème reste le même vue qu'il n'y a rien qui s'affiche??
mais le problème reste le même vue qu'il n'y a rien qui s'affiche??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voilà j'ai bien modifier le scripte car celui que j'utilisais avent ne marchais pas
pour ce qui est du tableau c'est un peu près bon sauf que l'affichage des données de la tables sont en verticale mais après j'espère que j'ariverai a bien les mettre dessou les bon nom de mes tables
pour ce qui est du tableau c'est un peu près bon sauf que l'affichage des données de la tables sont en verticale mais après j'espère que j'ariverai a bien les mettre dessou les bon nom de mes tables
<?php
// Liste les données de la table
// -------------------------------------------
$resQuery = mysql_query("SELECT * FROM en_customers WHERE customers_id='1235' ");
ini_set ("max_execution_time ", "15") ;
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");
if (mysql_num_rows($resQuery) != 0) {
// titre des colonnes
$fields = mysql_num_fields($resQuery);
$i = 0;
while ($i < $fields) {
?>
<table border="1">
<tr style="text-align: center; background-color:#FFAD5B; font-weight:bold;">
<th><?php echo mysql_field_name($resQuery, $i)."\t";?> </th></tr>
<?php
$i++;
}
echo "\n";
// données de la table
while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
foreach($arrSelect as $elem) {
?>
<td style="text-align:center;"> <?php echo "$elem;"; ?> </td>
<?php
}
echo "\n";
}
}
?>
Bonjours,
j'ai réussit à réglé mon problème d'affichage par contre je trouve pas mon fichier csv qui devrait être créer ai-je commis une erreur??
doi-je rajouter quelques chose?? car je trouve pas mon fichier csv
j'ai réussit à réglé mon problème d'affichage par contre je trouve pas mon fichier csv qui devrait être créer ai-je commis une erreur??
<?php
// Liste les données de la table
// -------------------------------------------
$resQuery = mysql_query("SELECT * FROM en_customers WHERE customers_id='1235'");
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");
if (mysql_num_rows($resQuery) != 0) {
// titre des colonnes
$fields = mysql_num_fields($resQuery);
$i = 0;
while ($i < $fields) {
echo mysql_field_name($resQuery, $i).";";
$i++;
}
echo "\n";
// données de la table
while ($arrSelect = mysql_fetch_array($resQuery, MYSQL_ASSOC)) {
foreach($arrSelect as $elem) {
echo "$elem;";
}
echo "\n";
}
}
?>
doi-je rajouter quelques chose?? car je trouve pas mon fichier csv
Ton script n'a jamais créé aucun fichier. Il se contente d'afficher. Où y a-t-il une création de fichier dans ton script ? ou une écriture dans un fichier ?
le
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");
ne s'occupe pas de créer le fichier??
header("Content-Type: application/csv-tab-delimited-table");
header("Content-disposition: filename=table.csv");
ne s'occupe pas de créer le fichier??
Mille-z-excuses, tu as tout à fait raison. Je pensais à une création de fichier côté serveur.
En fait, c'est toi qui décides quand tu le reçois si tu l'affiches ou si tu l'enregistres dans un fichier. Avec FF, tu as une fenêtre qui te propose le choix, tu n'as qu'à choisir de l'enregistrer.
En fait, c'est toi qui décides quand tu le reçois si tu l'affiches ou si tu l'enregistres dans un fichier. Avec FF, tu as une fenêtre qui te propose le choix, tu n'as qu'à choisir de l'enregistrer.
le problème c'est que j'ai rien qui s'affiche pour me proposer de l'enregistré et c'est ce que je cherche
J'ai essayé ton script chez moi et ça m'a bien posé la question... Mais tu as peut-être coché un jour la case "toujours effectuer cette opération pour ce type de fichier". Alors ça ne te pose plus la question.
Ça fait quoi ? ça ouvre excel ?
Ça fait quoi ? ça ouvre excel ?
Dans FireFox, outils, options, onglet applications. Dans la colonne de gauche , recherche la ligne correspondant aux fichiers csv et regarde l'action correspondante dans la colonne de droite.
j'ai rien a partire de là: Dans la colonne de gauche , recherche la ligne correspondant aux fichiers csv et regarde l'action correspondante dans la colonne de droite.
normalement je peu pas le mettre directement sur mon serveur le fichier csv?? car là même sur explorer sa me propose rien?? et je l'ai jamais utilisé???
Si tu peux le mettre directement sur le serveur, mais ce script-là sert à l'envoyer au client. C'est pour ça qu'à un moment donné je t'ai dit que ton script ne générait pas de fichier, je ne pensais qu'au serveur.
Le script pour enregistrer dans le serveur n'est pas très différent, il suffit d'écrire dans un fichier tout ce que tu envoies ici par echo. Sans header(.
Mais ça m'étonne que ça ne marche pas comme ça.
Quand tu crées un fichier avec l'extension csv et que tu le regardes dans l'explorateur de windows (pas IE !) , que vois-tu dans la colonne 'type' ?
Le script pour enregistrer dans le serveur n'est pas très différent, il suffit d'écrire dans un fichier tout ce que tu envoies ici par echo. Sans header(.
Mais ça m'étonne que ça ne marche pas comme ça.
Quand tu crées un fichier avec l'extension csv et que tu le regardes dans l'explorateur de windows (pas IE !) , que vois-tu dans la colonne 'type' ?
excuse moi mais j'ai pas bien compris la dernière question de: que vois-tu dans la colonne 'type'
j'ai pas trouvé :( ou alors j'ai cherché a cotés
j'ai pas trouvé :( ou alors j'ai cherché a cotés