Exporter un tableau en fichier txt

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Exporter un tableau en fichier txt

par VaN » 06 déc. 2005, 18:46

if (!file_exists( "stats_result.txt")) 
{ 
    $f_result = fopen("stats_result.txt", "a");  
    $sql =     "SELECT pic_id, pic_name, pic_link 
                FROM stats_pics"; 
    $query = mysql_query($sql); 
	$tab = array("pic_name" => 0);
    while($result = mysql_fetch_array($query)) 
	{ 
    	$tab["pic_name"] += $result["pic_name"];
    } 
	fputs($f_result, "Date\t\t".$tab["pic_name"]."Total\n"); 
}
else 
{
	$f_result = fopen("stats_result.txt", "a");
}
m'affiche le mot "Date", suivi d'un 0 (celui du tableau j'imagine), puis le mot "Total".

par zeus » 06 déc. 2005, 18:34

Alors il faut que tu ajoute tout dans la même case de ton tableau
$tab = array("pic_name" => 0);
while($result = mysql_fetch_array($query))
{
	$tab["pic_name"] += $result["pic_name"];
}

par VaN » 06 déc. 2005, 18:11

oui mais nan, parce que la, ça me repete les mots "Date" et "total", qui ne doit etre present qu'une seule fois.

par zeus » 06 déc. 2005, 16:40

fait un
print_r($tab)
et tu devrais comprendre ton erreur :
tu ne peux pas acceder à $tab["pic_name"] mais qu'il te faut
$tab[$i]["pic_name"]
;)

de plus, pourquoi utiliser 2 boucles quand 1 suffit :,:
// tester si le fichier existe, si il existe pas,
//le creer en mettant dans la 1ere ligne le nom des champs
if (!file_exists( "stats_result.txt")) {
    $f_result = fopen("stats_result.txt", "a");
	
	$sql =     "SELECT pic_id, pic_name, pic_link
        		FROM stats_pics";
	$query = mysql_query($sql);
	
	while($result = mysql_fetch_array($query)) {
	    fputs($f_result, "Date\t\t".$result['pic_name']."Total\n");
	}

}

par VaN » 06 déc. 2005, 16:30

je n'ai toujours pas reussi a générer le fichier txt comme je le souhaitais.

par VaN » 05 déc. 2005, 16:54

@nicolas : :lol: (grilled)

je pensais que le probleme allait sauter au yeux, que la synthaxe etait totalement foireuse. (alors que dans l'autre post, je ne voyais rien de mauvais)

par nicolas » 05 déc. 2005, 16:46

Ton code te renvoie un message d'erreur ? Si oui, lequel ?
Essaye de localiser le probleme, en rajoutant des messages d'erreur.

par VaN » 05 déc. 2005, 16:44

Notice: Undefined index: pic_name in c:\program files\easyphp1-7\www\web_gg\prive\stats\export.php on line 39

Mais il crée tout de meme le fichier txt, mais sans remplir le champs de tab["pic_name"]
un var_dump($tab) me sort des reponses, donc le tableau n'est pas vide.

par jobherzt » 05 déc. 2005, 16:44

quelle erreur il te renvoie ?

par VaN » 05 déc. 2005, 16:40

ok c'est noté : )

J'ai un autre probleme dans ce que je suis en train de faire. En fait cela consiste à exporter un tableau html généré dynamiquement en fichier texte.

La premiere ligne de ce tableau contient le mot "date", suivi d'un nombre indéfini de nom d'image, suivi du mot "total".
Le nombre de ces images est généra par une sortie bdd, qui va recuperer toutes mes images pour le mois en question.

J'ai essayé :
$sql = 	"SELECT pic_id, pic_name, pic_link
		FROM stats_pics";
$query = mysql_query($sql);
while($result = mysql_fetch_array($query))
{
	// creation d'un tableau qui recupere l'id de chaque img
	$tab[$i] = array(	"pic_id"	=>	$result['pic_id'],
						"pic_name"	=>	$result['pic_name']."\t");
	$i++;
}
// tester si le fichier existe, si il existe pas, 
//le creer en mettant dans la 1ere ligne le nom des champs
if (!file_exists( "stats_result.txt")) 
{
	$f_result = fopen("stats_result.txt", "a");
	fputs($f_result, "Date\t\t".$tab["pic_name"]."Total\n");
}
Il me renvoie une erreur au niveau de fputs($f_result, "Date\t\t".$tab["pic_name"]."Total\n");

Comment reussir a faire ce que je souhaiterai faire ?

Au final, la premiere ligne de mon fichier texte devrait ressembler à :

Date image1 image2 image3 image4 Total

J'ai changé de methode, je n'utilise plus $pic_name.=$result['pic_name'], car je vais par la suite me servir de $i present dans le tableau. Il faut donc que j'arrive a faire ce que je veux faire avec le tableau.

par zeus » 05 déc. 2005, 16:32

Quand tu veux faire une concaténation, il faut t'assurer que la variable de gauche existe

Quand tu écris
$a .= $b
c'est comme si tu avais écrit
$a = $a.$b;
Tu imagine donc que si $a n'existe pas, il va y avoir une erreur

Afin de garantir la bonne utilisation de .= dans une boucle par exemple, il faut initialiser la varaible avant
$a = "";
$a.= $b;

Exporter un tableau en fichier txt

par VaN » 05 déc. 2005, 16:03

Bonjour,
je cherche a créer une variable qui contiendrait toutes les valeurs d'un certain champ de ma base de donnée. La requete est bonne, mais pour remplir la variable, j'ai un probleme, je ne trouve pas la bonne ecriture.

Je sais qu'il y'a une histoire de . et de = . j'ai essayé
$pic_name .= $result['pic_name'];
et
$pic_name =. $result['pic_name'];
mais ça ne marche pas. quelle est la bonne ecriture svp ? (mes recherches google ne m'ont pas aider, il ne prend pas en compte les caracteres . et = : /

trouvé : ce n'etait pas
$pic_name .= $result['pic_name'];
mais
$pic_name.=$result['pic_name'];