Problème de code ,,,

thekid23 Messages postés 77 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 28 novembre 2007 - 19 août 2006 à 01:28
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 19 août 2006 à 19:44
Salut, j'ai un problème ... Voici le code :

$fichier = 'donnee/Regular Season Schedule.csv';
if(file_exists($fichier))
{
$fp = fopen("$fichier", "r");
  while (!feof($fp))
  { 
  $ligne = fgets($fp,4096);
  $liste = explode(",", "$ligne");
  $liste = str_replace('"', '', $liste);
  $liste = str_replace('®', '', $liste);
  $liste = str_replace('?', '', $liste);
  $liste = str_replace('/', '', $liste);
  // Regarde le nombre de colonne //
  $resultat = count($liste);
  $nb = $resultat ;
  echo $resultat ;
  //////////////////////////////////
  
  /* while(isset($ligne[0][$i]))
  {
  $i = 0;
  $retour = FindMaxType($ligne, $i);
  $requete = "";
  $requete .= "`".mysql_escape_string(strtr($ligne[0][$i], " ", "_"))."`";  $requete .(($retour[1] "Y") ? " INT($retour[0])" : " VARCHAR($retour[0])");
  } */
  /* echo $requete ; */
  $date = $liste[1];
  $home = $liste[2];
  $away = $liste[3];
  $vs = 'vs';
  print "$date      $home VS $away
";
   // print "$liste";
  }
  for ($i=0; $i<$nb;$i++)
  {
  echo("
".$i." Je poserais des questions claires sur CS
");
  }
}

Le problème ses que $nb vaut 1 et il devrait valoir 17...

6 réponses

thekid23 Messages postés 77 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 28 novembre 2007
19 août 2006 à 01:29
Oupss voici code

$fichier = 'donnee/Regular Season Schedule.csv';
if(file_exists($fichier))
{
$fp = fopen("$fichier", "r");
  while (!feof($fp))
  { 
  $ligne = fgets($fp,4096);
  $liste = explode(",", "$ligne");
  $liste = str_replace('"', '', $liste);
  $liste = str_replace('®', '', $liste);
  $liste = str_replace('?', '', $liste);
  $liste = str_replace('/', '', $liste);
  // Regarde le nombre de colonne //
  $resultat = count($liste);
  $nb = $resultat ;
  echo $resultat ;
  //////////////////////////////////
  $date = $liste[1];
  $home = $liste[2];
  $away = $liste[3];
  $vs = 'vs';
  print "$date &nbsp;&nbsp;&nbsp;&nbsp; $home VS $away
";
   // print "$liste";
  }
  for ($i=0; $i<$nb;$i++)
  {
  echo("
".$i." Je poserais des questions claires sur CS
");
  }
}
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
19 août 2006 à 06:54
Bonjour,

Pour lire lex fichiers 'csv', il y a une fonction : fgetcsv().
D'autre part, la variable '$liste' n'est pas un tableau, et elle est donc écrasée à chaque tour de boucle. En final, il ne reste que la dernière valeur, donc longueur = 1.

Ton code (simplifié) pourrait être comme ça (pas testé) :
<?php
    $fichier = 'donnee/Regular Season Schedule.csv';
    if(file_exists($fichier))
    {
        $i = 0;
        $fp = fopen("$fichier", "r");
        while (!feof($fp))
        {
            $liste[$i] = fgetcsv($fp, 4096, ',', '"');
            $aRemplacer = array('®', '?', '/');
            $liste[$i] = str_replace($aRemplacer, '', $liste[$i]);
            // Regarde le nombre de colonne //
            $resultat = count($liste);
            $nb = $resultat ;
            echo $resultat ;
        }
    }
?>

Cordialement.

JC
0
cs_jeca Messages postés 341 Date d'inscription mercredi 17 juillet 2002 Statut Membre Dernière intervention 14 juillet 2011 14
19 août 2006 à 06:56
Pas réveillé ce matin :

<?php
    $fichier = 'donnee/Regular Season Schedule.csv';
    if(file_exists($fichier))
    {
        $i = 0;
        $fp = fopen("$fichier", "r");
        while (!feof($fp))
        {
            $liste[$i] = fgetcsv($fp, 4096, ',', '"');
            $aRemplacer = array('®', '?', '/');
            $liste[$i] = str_replace($aRemplacer, '', $liste[$i]);
            $i ++;
        }
        // Regarde le nombre de colonne //
        echo count($liste);
    }
?>

Cordialement.

JC
0
thekid23 Messages postés 77 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 28 novembre 2007
19 août 2006 à 17:22
Sa ne fonctionne pas ...
Ce code :
$fichier = 'donnee/Regular Season Schedule.csv';
if(file_exists($fichier))
{
$fp = fopen("$fichier", "r");
  while (!feof($fp))
  { 
  $ligne = fgets($fp,4096);
  $liste = explode(",", "$ligne");
  $liste = str_replace('"', '', $liste);
  $liste = str_replace('®', '', $liste);
  $liste = str_replace('?', '', $liste);
  $liste = str_replace('/', '', $liste);
  // Regarde le nombre de colonne //
  $resultat = count($liste);
  $nb = $resultat ;
  echo $resultat ;
  //////////////////////////////////
  $date = $liste[1];
  $home = $liste[2];
  $away = $liste[3];
  $vs = 'vs';
  print "$date &nbsp;&nbsp;&nbsp;&nbsp; $home VS $away
";
   // print "$liste";
  }
  for ($i=0; $i<$nb;$i++)
  {
  echo("
".$i." Je poserais des questions claires sur CS
");
  }
}

Maffiche : www.sipinformatique.ca/nhle/easports.php

Ton code maffiche : http://www.sipinformatique.ca/nhle/test.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thekid23 Messages postés 77 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 28 novembre 2007
19 août 2006 à 17:23
ses supposé afficher le nombre de colonne 17
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
19 août 2006 à 19:44
Hello,

si tu regardes bien ton output, tu verras que ton $nb vaut 17 pour toutes les lignes, sauf...la dernière. Parce que ton code lit trop loin : ton fichier csv se finit sur un retour chariot, et la dernière ligne est celle d'après ce retour chariot : elle ne contient rien, aucun champ csv. Ou du moins un champ vide. Et comme tu écrases ton $nb à chaque ligne, jusqu'à la dernière...ben à la dernière, $nb vaut 1 apparemment puisque ton affichage se fait une fois.
0
Rejoignez-nous