J ai pas pu savoir d ou vient l erreur

Résolu
smouker Messages postés 11 Statut Membre -  
smouker Messages postés 11 Statut Membre -
Bonjour,
j ai pas pu savoir d ou vient l erreur
Notice: Undefined offset:
dans ce code
$j déjà un variable existant
for($h=1;$h<=$j;++$h){
$d=$tab[$h];
if($d[6]=='0')
{$tab_offre_sans_montant [$u] =  substr($d,1);
$u=$u+1; 
}
else{
$tab_offre_avec_montant [$c] = substr($d,1);
$c=$c+1;
}
}

Merci d avance pour l aide

4 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Avec le message d'erreur complet, et notamment la ligne concernée, ce serait plus simple.

    Je dirais, a priori, que le problème vient de $d[6], dans le cas où $d fait moins de 7 caractères de long... Remplace
    if($d[6]=='0')
    par
    if(sizeof($d) >= 7 && $d[6] == '0')
    , pour voir.

    Xavier
    1
  2. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Il te dit
    Undefined offset: 1

    C'est donc
    $tab[1]
    qu'il cherche et qui n'existe pas.
    Écris
    var_dump($tab)
    pour voir ce qu'il a dans le ventre.

    Xavier
    1
  3. smouker Messages postés 11 Statut Membre
     
    Merci mais ça n a pas marché voici le code
    $tab_offre_avec_montant = array();
    $tab_offre_sans_montant = array();
    $u=0;
    $c=0;
    $d="";
    for($h=0;$h<=$j;++$h){
    $d =$tab[$h];
    if($d[0]=='0')
    {$tab_offre_sans_montant [$u] =  substr($d,1);
    $u=$u+1; 
    }
    else{
    $tab_offre_avec_montant [$c] = substr($d,1);
    $c=$c+1;
    }
    }

    l erreur afficher c est en ligne 7
    merci d avance
    0
    1. ReDLoG Messages postés 393 Statut Membre 57
       
      Bonjour,

      La variable tableau $tab n'existe pas car tu ne l'as pas initialisé avant de t'en servir d'où le message d'erreur PHP.
      Cdlt.
      0
    2. smouker Messages postés 11 Statut Membre
       
      Le $tab existe deja initialisé ce que j ai posté ce n est qu un extrait de mon projet php le resultat s affiche mais il y a beaucoup de ligne qui indique

      Notice: Undefined offset: 1 in C:\Program Files (x86)\EasyPHP-5.3.8.0\www\pfe\e.php on line 56
      le ligne 56 c est le ligne 7
      0
  4. smouker Messages postés 11 Statut Membre
     
    Merci mais il écrit Undefined offset: 1 jusqu'a 194 apres dans l affichage il m affiche ce que je veux au dessus mais il y a 194 ligne de Undefined offset
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Conclusion : ton tableau ne contient de valeurs qu'après 194.

      Du coup, plutôt qu'utiliser for(), tu devrais utiliser foreach() :
      foreach ($tab as $h => $d){
          if($d[6]=='0'){
              $tab_offre_sans_montant [$u] =  substr($d,1);
              $u=$u+1; 
          }
          else{
              $tab_offre_avec_montant [$c] = substr($d,1);
              $c=$c+1;
          }
      }

      À limiter éventuellement, si tu veux conserver la contrainte
      $h <= $j
      (ça dépend de la construction de $tab).

      Xavier
      0
    2. smouker Messages postés 11 Statut Membre
       
      Merci infiniment ça marche :)
      Mais est ce qu il est possible de garder ce script et que h commence par 1 ou lieu case 0
      car dans le case 0 il y a une chaîne vide qui sert a rien et encore merci infiniment
      0