Récupérer le contenu d'un fichier dans un tab

Fermé
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 17 févr. 2010 à 11:01
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 17 févr. 2010 à 14:55
Bonjour,

Je travaille sur un site internet en PHP et je voudrais afficher certaines informations contenu dans fichier CSV.
Mon fichier CSV est enfaite un tableau. Et je veux aussi l'afficher dans un tableau. Mais pas entièrement.
Pour l'instant, chaque ligne de mon CSV est contenu dans une ligne de tableau dans mon site. Ce que je voudrais c'est un tableau avec des colonnes.
Bon ca c'est juste un début. Parce que ce que je veux en réalité c'est afficher seulement certains champs. Et ces champs ne doivent être afficher que si la date d'expédition est supérieur à une certaines date.

Voici mon code :

$file = "C:\...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
// On affiche la ligne
echo "<td>$Ligne</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp); // On ferme le fichier
}


J'ai vraiment besoin d'aide. S'il vous plait.
Merci d'avance.
A voir également:

3 réponses

0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
17 févr. 2010 à 14:23
Bon après modification de mon code, j'arrive à obtenir les champs souhaité dans mon tableau PHP.
L'un des champs affiche une date. Maintenant ce que je voudrais c'est afficher les champs dont la date est supérieur ou égale à la date système.

Voici mon code :
$file = "...\nomFichier.csv";
$contenu = fopen ($file, "r") or die("Cannot open $file");
if (!$fp = fopen($file,"r")) {
echo "Echec de l'ouverture du fichier";
exit;
}
else {
echo "<table border='1'>\n";
while(!feof($fp)) {
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
echo "</table>\n";
fclose($fp);
}


Il me faut donc ici une boucle mais où ? Et surtout comment la faire ?
Un peu d'aide s'il vous plait :(
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
17 févr. 2010 à 14:43
Bon l'opération sur les dates est réussi.
Enfaite au lieu d'une boucle j'ai mit une contrainte :
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){ echo .... }

Me reste plus qu'une chose à faire.
Ce que j'affiche ici est une liste d'article qui doit être fabriqué. Et il est très probable qu'un même article doivent être fabriqué plusieurs fois.
$lesColonnes[26] représente la quantité du produit. Ce que je voudrais c'est rassembler les produits qui sont affichés plusieurs fois. C'est-à-dire qu'il faudrait affiché un produit seulement une fois. Et s'il apparait plusieurs fois dans le fichier alors faire $lesColonnes[26]+1

Quelqu'un va pouvoir m'aider cette fois-ci ?! :(
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
17 févr. 2010 à 14:55
Bon je vais vous aider à m'aider.
Je pense ajouté une variable nb que j'initialiserai à 0. Lorsque j'entrerai dans mon while il prendrai +1
Et ensuite il faudrait faire un test.

J'avais pensé faire un truc du genre :

echo "<table border='1'>\n";
$nb = 0;
while(!feof($fp)) {
$nb++;
echo "<tr>";
$j = sizeof($ligne);
// On récupère une ligne
$Ligne = fgets($fp,1024);
$lesColonnes = explode(";", $Ligne);
$lesColonnes = str_replace('"','',$lesColonnes);
$date = date("d/m/Y");
if ($lesColonnes[17] >= $date){
if ($lesColonnes[22].[$nb] = $lesColonnes[22].[$nb-1]){
// On affiche la ligne
echo "<td>$lesColonnes[23]</td>";
echo "<td>$lesColonnes[22]</td>";
echo "<td>$lesColonnes[24]</td>";
echo "<td>$lesColonnes[25]</td>";
echo "<td>$lesColonnes[26]</td>";
echo "<td>$lesColonnes[17]</td>";
echo "</tr>";
}
}
}
echo "</table>\n";



J'ai essayé ca mais la ca ne marche pas. Allez faites un effort s'il vous plait j'ai besoin d'aide.
0