IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] probleme tableau de chaines de caractères


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 185
    Points : 97
    Points
    97
    Par défaut [Tableaux] probleme tableau de chaines de caractères
    Bonjour à tous voila j'ai un petit soucis de code PHP j'éssaye de créer une liste de choix d'après un fichier csv lue en lecture seule.

    il me met des erreurs à la ligne if(!strcmp($tableau[$i],$marque)) .

    le probleme c'est que je ne voi pas ou cette erreur est logée...

    please help !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    function verif_tab($tableau,$taille,$marque)
    {
     if($taille != 0)
     {
      for( $i=0 ; $i<$taille ; $i++ )
      {
       if(!strcmp($tableau[$i],$marque))
       {
        return 0;
       }
      }
      $tableau[$i] = $marque;
      return 1;
     }
     else
     {
      $tab[0]=$marque;
      return 1;
     }
    }
     
    function affiche_marques_nsp()
    {
     echo '<form><select><option value="toutes">';
     $fichier=fopen("nsp_2.CSV","r");
     $tab=array();
     $taille=0;
     while($ligne=fgets($fichier))
     {
      $nb_ptv=0;
      $i=0;
      $marque='';
      $af=0;
      while($nb_ptv<=5)
      {
       if($nb_ptv==3)
       {
    	while($ligne[$i]!=";")
    	{
    	 $marque = $marque . $ligne[$i];
    	 $i=$i+1;
    	 $af=1;
    	}
    	if($af==1 && verif_tab($tab,$taille,$marque)==1)
    	{
    	 $taille = $taille + 1;
    	 echo '<option value="' . $marque . '">' . $marque;
    	}
       }
       if($ligne[$i]==";")
       {
        $nb_ptv=$nb_ptv+1;
       }
       $i=$i+1;
      }
     }
     fclose($fichier);
     echo '</select></form>';
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Quelles est l'erreur?
    Que valent $tableau, $taille, $marque et $i avant l'erreur?

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour,
    Sans connaitre l'erreur exacte, c'est beaucoup moins facile de répondre, mais à mon avis, il y a un problème d'utilisation de strcmp.
    strcmp($str1, $str2) : compare en binaire les 2 chaînes, retourne un entier négatif si $str1<$str2, positif si $str1>$str2, nul si $str1=$str2.
    Sans compter que la valeur de $i en dehors du for n'est pas garantie.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {
      for( $i=0 ; $i<$taille ; $i++ )
      {
       if(strcmp($tableau[$i],$marque) !=0) // comme ça, ça marchera (peut-être) mieux
       {
        return 0;
       }
      }
      $tableau[$i] = $marque; // est-ce que ça c'est au bon endroit ?
      return 1;
     }

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/05/2007, 15h10
  2. Réponses: 5
    Dernier message: 26/07/2006, 11h13
  3. [C] tableau de chaines de caractères
    Par kitsune dans le forum C
    Réponses: 18
    Dernier message: 01/04/2006, 18h18
  4. probleme classe et chaines de caractères
    Par oilv dans le forum C++
    Réponses: 12
    Dernier message: 18/02/2006, 10h01
  5. [Tableaux] Probleme tableau
    Par chocobos dans le forum Langage
    Réponses: 3
    Dernier message: 10/09/2005, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo