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] Problème dans caddie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Par défaut [Tableaux] Problème dans caddie
    Salut à tous,

    j'ai un pb dans mon caddie.
    Je veux vérifier que le produoit n'y soit pas déjà pour rajouter une ligne. S'il y est déjà, je voudrai modifier sa quantité...

    <?php

    if(isset($_GET&#91;'action']) && isset($_GET&#91;'id']))
    {
    &#160;&#160;&#160;if(
    session_is_registered('panier') && is_array($panier)) // le panier existe déjà
    &#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $nbprod = count($panier);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (
    $_GET&#91;'action'] == "add") // on ajoute le produit
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(
    $i=0;$i<$nbprod;$i++) // on liste tous les pdts du panier
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (
    $panier&#91;$i]&#91;'prod'] == $_GET&#91;'prod']) // le pdt existe déjà LE BUG EST ICI !
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $newQte = ($_GET&#91;'qte'] + $panier&#91;$i]&#91;'qte']);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    array_splice($panier,$prodline,$newQte);
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $message = "+ 1 en qte";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    // n'existait pas, on le rajoute
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $ajout = 1;
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (
    $ajout == 1)
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    array_push($panier,array("prod" => $_GET&#91;'id'],"qte" => $_GET&#91;'qte']));
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $message = "on en rajoute 1 / 1 ligne";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;elseif ((
    $_GET&#91;'action'] == "del")) // on supprime le produit
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $message = "on en effece 1";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;elseif (
    $_GET&#91;'action'] == "mod") // on modifie la quantité
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $message = "on en modif 1";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
    // couille dans le potage
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //$message = "Une erreur s'est produite, merci de renouveller votre action.";
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    }
    &#160;&#160;&#160;}
    &#160;&#160;&#160;else
    // le panier n'existe pas
    &#160;&#160;&#160;
    {
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    session_register('panier');
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $panier = array ();
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    array_push($panier,array("prod" => $_GET&#91;'id'],"qte" => $_GET&#91;'qte']));
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    //$message = "Votre produit a bien &eacute;t&eacute; rajouté au panier.";
    &#160;&#160;&#160;
    }
    }

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Merci pour votre coup de main

  2. #2
    Membre très actif
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Turquie

    Informations forums :
    Inscription : Avril 2005
    Messages : 614
    Par défaut
    Qu'est censé contenir $_GET['prod'] ?

    si c'est l'id du produit alors la condition serai simplement :
    if ($panier[$i] == $_GET['prod'])
    et je dirai meme que çà ce cas là il suffirait de faire:
    if($panier[$_GET['prod']]) // test si ton produit est présent dans le tableau

    j'attends de tes news

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Par défaut
    Citation Envoyé par maximenet
    Qu'est censé contenir $_GET['prod'] ?

    si c'est l'id du produit alors la condition serai simplement :
    if ($panier[$i] == $_GET['prod'])
    et je dirai meme que çà ce cas là il suffirait de faire:
    if($panier[$_GET['prod']]) // test si ton produit est présent dans le tableau

    j'attends de tes news
    Salut maximenet,

    effectivement $_GET['prod'] est bien l'id du produit.

    J'ai testé tes différentes propositions mais elles ne fonctionnent pas !

    Merci

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Déjà n'utilise pas session_is_registered() mais plutot isset($_SESSION['panier']), tout comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    session_register('panier');
    $panier = array ();
    array_push($panier,array("prod" => $_GET['id'],"qte" => $_GET['qte']));
    //$message = "Votre produit a bien &eacute;t&eacute; rajouté au panier.";
    Utilise plutot simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $_SESSION['panier'] = array("prod" => $_GET['id'],"qte" => $_GET['qte']);
    //$message = "Votre produit a bien &eacute;t&eacute; rajouté au panier.";
    Essai ça pour ta boucle et dit moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    foreach($_SESSION['panier'] as $key => $array) {
       if ($array['prod'] == $_GET['id']) {
          $newQte = ($_GET['qte'] + $array['qte']);
          $_SESSION['panier'][$key]['qte'] = $newQte;
          $message = "+ 1 en qte";
       }
       else
          $ajout = 1;
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Par défaut
    Merci Anduriel !

    Cela a presque fonctionné du premier coup En fait il manquait des crochets à la déclaration du tableau :

    <?php
    $_SESSION
    ['panier'][] = array("prod" => $_GET['id'],"qte" => $_GET['qte']);
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Bon maintenant c'est ma fonction pour supprimer qui me rend fou... Je risque de revenir

    Merci encore !

    PS : il faudra que je me penche qomme il faut sur ton bout de code car je n'ai pas compris grand chose.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 40
    Par défaut Pb pour supprimer produit
    Bon,

    maintenant, je voudrai supprimer un article de mon panier. Et bien sûr, ce que j'ai pu trouver sur le net, ne fonctionne pas du premier coup

    <?php
    elseif (($_GET['action'] == "del")) // on supprime le produit
    {
    foreach(
    $_SESSION['panier'] as $key => $array)
    {
    if (
    $array['prod'] == $_GET['id'])
    {
    unset(
    $_SESSION['panier'][$i]);
    $message = " effacé !! ";
    }
    }
    }

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Ca buggue ou ? Thanxx !

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

Discussions similaires

  1. [Tableaux] Problème dans ma requête UPDATE SET
    Par mickado dans le forum Langage
    Réponses: 7
    Dernier message: 02/05/2007, 23h41
  2. [Tableaux] Problème dans ma boucle
    Par Sandara dans le forum Langage
    Réponses: 29
    Dernier message: 28/06/2006, 11h34
  3. Réponses: 5
    Dernier message: 24/12/2005, 15h40
  4. Réponses: 2
    Dernier message: 19/12/2005, 12h23
  5. Réponses: 2
    Dernier message: 14/09/2005, 13h39

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