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] Fonction array_search ()


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut [Tableaux] Fonction array_search ()
    Bonjour,

    Voilà j'ai une fonction, dans ma classe gérant le panier electronique de ma future boutique en ligne, permettant de savoir si un produit est dejà dans le panier ou non.
    Mais petit problème cette fonction me renvoie toujours FAUX (le produit n'est pas dans le panier) et je ne vois pas trop pourquoi.

    Voici cette maudite fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    /*Verifie si un article se trouve dans le panier*/
    function verif_panier($ref_article)
    {
        /* On initialise la variable de retour */
        $present = false;
        /* On vérifie les numéros de références des articles et on compare avec l'article à vérifier */
        if(array_search($ref_article, $_SESSION['panier']['id_article']) !=false)
        {
            $present = true;
        }
        return $present;
    }

    Voilà donc mes références produit sont du genre AB102\2, je me suis donc dit que ca venait peut etre des slashs mais ca m'étonne. Donc si qulqu'un a une ptite idée ou une fonction identique qui fait la meme et qui marche je suis preneur

    Merci d'avance pour le temps passé a résoudre mon ptit problème

  2. #2
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Par défaut
    Salut,

    est-ce que tu peux poster un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print_r($_SESSION['panier']);
    à moins que tu sois certain que $_SESSION['panier']['id_article'] soit un array contenant un autre array avec tous tes produits?

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    en fait voila mon constructeur de ma classe panier pour que vous ayez une idée :

    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
     
    function __construct()
    {
     
    		if(!isset($_SESSION['panier']))
    		{
    			/* Initialisation du panier */
    			$_SESSION['panier'] = array();
    			/* Subdivision du panier */
    			$_SESSION['panier']['id_article'] = array();
    			$_SESSION['panier']['qte'] = array();
    			$_SESSION['panier']['taille'] = array();
    			$_SESSION['panier']['couleur'] = array();
    			$_SESSION['panier']['prix'] = array();
    			$_SESSION['panier']['id_produit'] = array();
    		}
     
    }
    Lorsque que je fais un print_r de $_SESSION['panier']['id_article'] après avoir ajout 2 produit identique voilà ce qu'il me sort :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Array ( [0] => CE5030\1 [1] => CE5030\1 )
    donc là je vois pas du tout le problème, le array_search devrait me sortir la clé au lieu de false et ma fonction marcherait... si quelqu'un à une idée merci d'avance


    var_dump($_SESSION['panier'] après l'ajout d'un produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    array(6) { ["id_article"]=>  array(1) { [0]=>  string(8) "CE5030\1" } ["qte"]=>  array(1) { [0]=>  string(1) "1" } ["taille"]=>  array(1) { [0]=>  string(0) "" } ["couleur"]=>  array(1) { [0]=>  string(0) "" } ["prix"]=>  array(1) { [0]=>  string(5) "18.50" } ["id_produit"]=>  array(1) { [0]=>  string(6) "CE5030" } }

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    Bon bah voilà j'ai contourné le problème comme on dit dans le jargon.
    Je vous donne ma solution ca peut toujours dépanner j'ai remplace la fonction array_search() par la fonction in_array() qui a la meme syntaxe et cette fonction me retourne un résultat correct !

    Il faudra m'expliquer la différence entre ces deux fonctions car sur le papier ca à l'air similaire.

  5. #5
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Citation Envoyé par EggY14
    Bon bah voilà j'ai contourné le problème comme on dit dans le jargon.
    Je vous donne ma solution ca peut toujours dépanner j'ai remplace la fonction array_search() par la fonction in_array() qui a la meme syntaxe et cette fonction me retourne un résultat correct !

    Il faudra m'expliquer la différence entre ces deux fonctions car sur le papier ca à l'air similaire.

    Array_search ne retourne pas true si ton élément est présent mais la 1ère occurence de ta clé recherchée donc je pense que le souci venait de la car if(array_search(...) ne pouvait jamais être validée !
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Par défaut
    Je suis d'accord mais étant donné que je fesais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    i
    if(array_search($ref_article, $_SESSION['panier']['id_article']) !=false)
    je vois pas ou été le problème car je ne recherchais nullement à ce qu'elle me renvoit TRUE.

  7. #7
    Membre Expert
    Avatar de guitou12
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 077
    Par défaut
    Au temps pour moi je n'avais pas lu la ligne jusqu'au bout
    Ex développeur Php / J2EE.
    Actuellement reconverti à SharePoint 2013

    Mon blog SP 2013

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Utilisation de la fonction array_search
    Par arnaudperfect dans le forum Langage
    Réponses: 1
    Dernier message: 13/02/2008, 10h21
  2. [Tableaux] Probleme avec la fonction array_search()
    Par Sarrus dans le forum Langage
    Réponses: 4
    Dernier message: 23/01/2007, 09h36
  3. [Tableaux] Fonction str_replace et les accents
    Par GarGamel55 dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2006, 18h05
  4. Réponses: 9
    Dernier message: 17/02/2006, 11h04
  5. [Tableaux] fonction retournant le 1er charactere
    Par Pepito dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2005, 14h59

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