J ai pas pu savoir d ou vient l erreur

Résolu
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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
ReDLoG Messages postés 243 Date d'inscription   Statut Membre Dernière intervention   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
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
smouker Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
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