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
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
A voir également:
- Récupérer le contenu d'un fichier dans un tab
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Ouvrir un fichier .bin - Guide
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
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 :(
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 :(
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
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 ?! :(
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 ?! :(
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
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.
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.