Page 1 sur 1

Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 10:57
par quelu
Bonjour ,

J'ai un cahier des charges et je dois réaliser sur le site intranet d'une entreprise ( ou je suis stagiaire )une page qui vend des tickets CE ( place de cinéma , piscine etc ) avec un accès pour les responsables pour qu'il valide la commande.

Donc je récupère les informations dans un fichier txt comme ceci :

$nom;1 place(s) de cinéma;5€;$remarque;
$nom;2 place(s) de piscine;10€;$remarque;

j'arrive à les afficher dans un tableau mais la 1ere ligne s'affiche en boucle ,voici mon code :

<?php
$fichier = "commandes.txt";
list($nom, $designation, $remarque, $prixtotal) = file ($fichier);
list($info1, $info2, $info3, $info4)= explode(';',$nom);
$nom=$info1;
$designation=$info2;
$remarque=$info3;
$prixtotal=$info4;

$Tableau[0][0] = "Nom ";
$Tableau[0][1] = "Désignation";
$Tableau[0][2] = "Prix Total ";
$Tableau[0][3] = "Remarque ";
$Tableau[0][4] = "Effacer";

$Tableau[1][0] = $nom;
$Tableau[1][1] = $designation;
$Tableau[1][2] = $remarque;
$Tableau[1][3] = $prixtotal;

$Tableau[2][0] = $nom;
$Tableau[2][1] = $designation;
$Tableau[2][2] = $remarque;
$Tableau[2][3] = $prixtotal;

Il faudrait aussi que le tableau "grandisse" au fur et a mesure des lignes présentes dans le fichier txt mais je suis un bleu en boucle for :(

et enfin je n'arrive pas a récupérer le login de l'utilisateur qui ouvre sa session sur l'ordinateur pour que sont nom s'affiche dans la commande.

Voila j'espère avoir était clair.

merci

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 11:06
par xTG
Tu as déjà un gros souci, file() renvoi un Array de ligne.
Donc ta fonction list() est mal placée car elle doit être utilisée sur chaque ligne et non sur la globalité.

Regardes du côté de foreach() c'est la fonction miracle en terme de simplicité. ;)
$lignes = file ($fichier);
foreach($lignes as $ligne)
{
  
}

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 11:47
par quelu
merci de ton aide !

si jai bien compris la fonction foreach permet de parcourir un tableau mais sans la fonction list je ne pourrais pas récupérer séparément les données de chaque ligne.

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 11:53
par xTG
Je vois pas ce qui t'empêcherai de faire ceci :
list($info1, $info2, $info3, $info4)= explode(';',$ligne);

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 11:59
par quelu
Oui j'avais essayé mais il m'affiche dans chaque ligne du tableau les valeurs de la dernière ligne du fichier txt.
je suis perdu #-o

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 12:11
par macgawel
Bonjour.

Vu ton fichier, tu devrais te pencher sur la fonction fgetcsv...

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 31 mai 2011, 14:21
par quelu
Je ne connaissais pas cette fonction et effectivement c'est ce que je chercher !

j'arrive désormais a afficher :

5 champs à la ligne 1:

Nom
1 place(s) de cinema
5 €
remarque

5 champs à la ligne 2:

Nom
2 place(s) de piscine enfant
10 €
.

Le code :

$row = 1;
$handle = fopen("commandes.txt", "r" );
while (($data = fgetcsv($handle, 1000, ";" )) !== FALSE)
{
$num = count($data);
echo "<p> $num champs à la ligne $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++)
{
echo $data[$c] . " <br />\n";
}
}
fclose($handle);

Voila maintenant j'aimerais récupérer les variables pour les mettre dans le tableau mais je n'y arrive pas :oops:

comment faire ?

Re: Recuperer nom utilisateur et lire un fichier .txt

Posté : 01 juin 2011, 10:01
par quelu
Bonjour ,

j'ai modifier mon code et j'arrive désormais à afficher un tableau qui dépend du nombre de ligne qu'il y a dans le fichier txt et de paramètre ( donc de colonne) :D

voici le code
<?php
$handle = fopen("commandes.txt", "r" ); 
 while (($data = fgetcsv($handle, 1000, ";" )) !== FALSE)
    {
$colonne = count($data);
$ligne=count($handle);
for( $i = 0; $i < $ligne; $i++ ) //nombre de ligne
{ 
		for( $j = 0; $j < $colonne; $j++ ) //nombre de colonne
		{ 
		echo $data[j];
		} 
echo '<br>';
 } 
}   
?>