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 :

problèle d'offset ...


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut problèle d'offset ...
    j'ai un code pour suprimer un article :

    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
     
     
    if($qtem == 0) 
    												{ 
    												// si la 'nouvelle' quantité est égale à zero 
    													$nbid = count($_SESSION['panier']);
    													for($i=0;$i<$nbid;$i++)
    													echo $i;
    													{
    													// on fait une boucle qui passe en revue chaque élément du panier... 
    														if ($_SESSION['panier'][$i]['id'] == $_GET['id']) 
    														{ 
    															// dès qu'on tombe sur la valeur à 'modifier'(ici en l'occurence il s'agit de supprmier ..) 
    															array_splice($_SESSION['panier'],$i,1); 
    														} 
    													} 
    												}
    le souci c'est que j'ai l'erreur suivante :

    Notice: Undefined offset: 1 in c:\program files\easyphp1-7\www\lldiffusion\pannier_ajout.php on line 346

    la ligne concernée est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($_SESSION['panier'][$i]['id'] == $_GET['id'])
    en faisant un echo $nbid, j'ai la valeur 1. cela signifie qu'il y a un élément dans mon panier.

    mais j'ai tout de même l'erreur au 1er passage.

    cela signifie donc que la valeur :

    $_SESSION['panier'][0]['id'] n'existe pas???
    pourtant il y a bien un élément dans mon panier...
    je commence à m'rracher les cheveux

    pouvez-vous me dire quel est le souci...

    pour info, mon pannier est alimenté de cete façon :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    $_SESSION['panier']=array();
     
    													// on rajoute le produit et la quantité... 
    													array_push($_SESSION['panier'],array("id" => $_GET['id'],"qte" => $_GET['qte']));
    merci d'vance pour votre aide.

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    essaies avec "<=" dans ta boucle for, et retire le "echo" après le for...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for($i=0;$i<=$nbid;$i++)

  3. #3
    Membre confirmé Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Points : 464
    Points
    464
    Par défaut
    ton $echo $i est mal placé
    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
    if($qtem == 0)
    {
    	// si la 'nouvelle' quantité est égale à zero
    	$nbid = count($_SESSION['panier']);
    	for($i=0;$i<$nbid;$i++)
    	echo $i;      //  <--
    	{
    		// on fait une boucle qui passe en revue chaque élément du panier...
    		if ($_SESSION['panier'][$i]['id'] == $_GET['id'])
    		{
    			// dès qu'on tombe sur la valeur à 'modifier'(ici en l'occurence il s'agit de supprmier ..)
    			array_splice($_SESSION['panier'],$i,1);
    		}
    	}
    }
    il faut le mettre a l'interieur de {
    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
    if($qtem == 0)
    {
    	// si la 'nouvelle' quantité est égale à zero
    	$nbid = count($_SESSION['panier']);
    	for($i=0;$i<$nbid;$i++)
    	{
          echo $i;
    		// on fait une boucle qui passe en revue chaque élément du panier...
    		if ($_SESSION['panier'][$i]['id'] == $_GET['id'])
    		{
    			// dès qu'on tombe sur la valeur à 'modifier'(ici en l'occurence il s'agit de supprmier ..)
    			array_splice($_SESSION['panier'],$i,1);
    		}
    	}
    }

    _____________________
    Il n'y a pas de choses urgentes, il n'y a que des choses en retard

  4. #4
    Membre confirmé Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Points : 464
    Points
    464
    Par défaut
    ska_root a dit:
    essaies avec "<=" dans ta boucle for, et retire le "echo" après le for...

    Code:

    for($i=0;$i<=$nbid;$i++)
    de cette facon il depasse la longeure du tableau.
    donc c'est mieux garder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0;$i<$nbid;$i++)

    _____________________
    Il n'y a pas de choses urgentes, il n'y a que des choses en retard

  5. #5
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    exact, j'avais pas vu qu'il nous mettait comment il le crée son panier...

    je me suis dit "peut-être qu'il le commence à 1" et finalement c'est débile, car il y aurait aussi un défaut d'offset

    méa culpa

Discussions similaires

  1. erreur Undefined offset
    Par wbagg2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/12/2005, 14h16
  2. Erreur de "Undefined offset"
    Par guy2004 dans le forum Langage
    Réponses: 8
    Dernier message: 16/10/2005, 12h48
  3. Patch modifiant l'offset d'un .exe
    Par Goshi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/02/2005, 18h24
  4. Qu'est ce qu'un offset
    Par gtr dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/12/2002, 08h53

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