Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Bureautique
Bureautique Forum d'entraide sur la gestion dynamique de documents de bureautique (Word, Excel, OpenOffice...) avec PHP. Avant de poster -> Cours Excel, FAQ OpenXML, FAQ OpenDocument
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2011, 13h55   #1
 
Inscription : janvier 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 23
Points : -1
Points : -1
Par défaut Problème avec CSV

Bonjour,

lorsque j'extrai des données de la base de données vers un fichier csv, j'ai une modification du format de la code postal (par exemple pour l'Ain, qui commence par 0, il n'affiche plus le 0). Pour les autres departements, y a pas de problème.

le type du code postal dans la base est déjà texte. Donc je ne sait pas si cela vient de Microsoft excel.

si quelqu'un peut me dire d'où ça vient et comment y remédier.

Merciii
stitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h01   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Il faut mettre une apostrophe devant ton code postal pour qu'excel ne le considère pas comme un nombre.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h08   #3
 
Inscription : janvier 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 23
Points : -1
Points : -1
Merci de ta réponse mais j'ai tableau, je ne sais pas comment le faire, voilà mon code, t'as une suggestion et merci encore une fois

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$r = mysql_query("select * from ".$table);
 
		$rwo=array();
		$i=0;
		while ($row = mysql_fetch_assoc($r)) {
		if ($i==0){
			$csv .=''.('Id Contact;Civilite;Nom;Prenom;Adresse;Adresse Complementaire;Code Postal;Ville;Pays;Tel;Tel Portable;Email;Niveau;ArtDesign;ImageSon;Stage decouverte;Moyen Communication;Ville d\'école;Se rendre sur place;Date rendez vous;Creneau horaire;Recevoir des informations;Langage')."\n";		}
		$i++;
 
 
		$csv .= ''.utf8_decode(join(';', $row))."\n";
		}
stitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 14h15   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
utilise fputcsv pour créer un CSV

c'est immonde ton truc, alors qu'on peux vraiement plus propre simple et fonctionnel:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$sql = "SELECT * FROM $table";
 
$result = mysql_query($sql);
 
$handle = tmpfile();
$fields = mysql_fetch_assoc($result);
 
fputcsv($handle, array_keys($fields), ';');
 
do
{
    fputcsv($handle, $fields, ';');
}
while($fields = mysql_fetch_assoc($result));
 
mysql_free_result($result);
 
rewind($handle);
fpassthru($handle);
fclose($handle);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h57   #5
 
Inscription : janvier 2009
Messages : 23
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 23
Points : -1
Points : -1
Sincèrement j'arrive pas à saisir le code que tu m'a mis, peux tu svp faire des changements à mon et merci davantage .
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
$sql = "SELECT * FROM $table";
		$result = mysql_query($sql);
		$handle = tmpfile();
		$fields = mysql_fetch_assoc($result);
		fputcsv($handle, array_keys($fields), ';');
		do
		{
			fputcsv($handle, $fields, ';');
		}
		while($fields = mysql_fetch_assoc($result));
		mysql_free_result($result);
		rewind($handle);
		fpassthru($handle);
		fclose($handle);
 
 
 
 
 
 
		header("Content-Type: text/csv; charset=UTF-8");
		header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv; size=".strlen($csv));
		echo $csv;
 
 
		exit;
            break;
			case "brochure":
 
				$dbconnection=mysql_connect("localhost", DB_USER, DB_PASSWORD);
				mysql_select_db(DB_NAME,$dbconnection);
				$table="users_contact";
				$csv = NULL;
				/* link identifier from db connection */
				$r = mysql_query("select * from ".$table);
				$i=0;
				while ($row = mysql_fetch_assoc($r)) {
				if ($i==0){
					$csv .=''.('Id Contact;Nom;Prenom;Adresse;Adresse Complementaire;Code Postal;Ville;Pays;Tel;Tel Portable;Email;Niveau;ArtDesign;ImageSon;Stage decouverte;Recevoir des informations;Langage;Civilite;')."\n";
				}
				$i++;
				$csv .= ''.utf8_decode(join(';', $row))."\n";
				}
				header("Content-Type: text/csv; charset=UTF-8");
				header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv; size=".strlen($csv));
				echo $csv;
				exit;
stitox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 16h25   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
pourquoi avoir mis echo $csv; ??? il viens d'ou le $csv ?

c'est :

Code :
1
2
3
4
header("Content-Type: text/csv; charset=UTF-8");
header("Content-disposition: csv; filename=" . date("Y-m-d") ."_".$table.".csv;");
fpassthru($handle);
fclose($handle);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h22.


 
 
 
 
Partenaires

Hébergement Web