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

PHP & Base de données Discussion :

Array to string conversion et calcule d'après un code promotion [PDO]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut Array to string conversion et calcule d'après un code promotion
    Bonsoir,

    Je souhaite faire un calcul de prix suite à l'entrée d'un code promo, puis récupérer la réduction associé à ce code promo.

    J'ai essayé de faire la requête mais j'ai un array to string conversion qui apparaît et ça me bloque car j'ai essayé toutes les manières pour appelé la valeur de $_SESSION['panier']['id_produit'].

    Voilà le début de mon code, je vais tenter de faire le reste seul:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function montantTotalAvecPromotion()
    {
    $resultat_promotion = executeRequete("SELECT reduction, id_produit FROM produit prod, promotion prom WHERE prod.id_promo = prom.id_promo AND prod.id_produit = '$_SESSION[panier][id_produit]'");
    }
    Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump($_SESSION['panier']['id_produit']);
    Et tu verras que c'est un tableau de valeur

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Bon beh je n'y arrive pas. Dans une requête je n'ai jamais encore eu à utiliser de $_Session et là elle me bloque énormément...

    Je ne vois pas comment faire pour récupérer une valeur dans le tableau de la session...

    Et même si en prenant un foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($_SESSION['panier'] AS $id => $id_produit){
    echo $id_produit;
    }
    Je n'arrive pas à chopper l'id que je souhaite malgré que je fasse des $id_produit [0],.....

    C'est pas faute d'avoir chercher !

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $_SESSION est un tableau normal.
    Que renvoit le contrôle que je t'ai indiqué au dessus et quelle donnée cherches-tu à utiliser dans ta requête ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Le var_dump me renvoit :

    array (size=1)
    0 => string '21' (length=2)

    Et je cherche à comparer le 21 ( id_produit ) avec l'id_produit en BDD pour savoir si ce produit a bien comme code promotion celui que le membre aura rentré préalablement.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta valeur c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['panier']['id_produit'][0]
    Attention c'est l'id du premier produit dans le panier, il pourrait y en avoir d'autres.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Et donc si je cherche à comparer tous les id_produit dans le panier je dois faire une requête avec une boucle ?

    EDIT: Grâce à toi j'ai déjà une requête que j'ai pu débloqué et qui fonctionne, merci. Et j'ai un fonctionnement qui peut paraître bizarre mais j'ai du mal à chercher par moi-même quand je n'ai pas encore vu comment résoudre un problème qui me bloque. Une fois que j'ai vu comment faire pour plusieurs problème, je peux aisément me débrouiller et regarder comment j'ai fait pour tel ou tel chose mais avant, j'ai plus que du mal.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Personne pour m'aider =/ ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Plutôt que d'attendre qu'on te dise "oui il faut faire une boucle", essai et tu verras bien si ça te donne quelque chose.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Bref, merci laisse tomber je vais me démerder.

    Je pensais qu'il y aurait plus d'entraide sur ce forum et pas des gens grincheux et incapable de donner des réponses à des questions.

    C'est pas ma vision des choses que de dire tiens démerde toi. J'apprends et j'ai des difficultés sur certains points, une réponse c'est pas donner un rein.

    ( J'ai fais une boucle mais ça ne m'a rien donné, surtout une boucle dans une requete SQL que je ne trouve pas normal donc je demandais juste un peu d'aide pour me débloquer).

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est marrant tu ne disais pas la même chose dans toutes les autres discussions ou des gens t'ont aidé à t'en sortir, y compris moi.

    Si tu as essayé quelque chose qui ne fonctionne pas, il faut montrer ton code, dire ce qu'il te donne et ce que tu attendais qu'il donne, plutôt que de demander "est-ce que je dois faire une boucle ?" et relancer.

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Et sinon, la réponse à ta question est oui et non.
    Pour parcourir le tableau des produits en session, il faut effectivement une boucle.
    Mais si ton but est d'avoir toutes les promotions de tous les produits, personnellement je ferais plutôt une requête SQL avec IN et une boucle sur le résultat de la requête.

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Tout d'abord merci, excusez-moi pour ce message qui n'a pas dû être sympa à lire, je reconnais mes torts... Je suis légèrement stressé parce que la deadline est le 29 juin et je souhaite vraiment que le code promo fonctionne car ça sera ça de fait pour l'autre site ecommerce que j'ai à faire dès le 30 juin...

    Donc j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if( isset($_POST['validation_codePromo'])){
     
    	for($i = 0; $i < count($_SESSION['panier']['id_produit']) ; $i++){
    		$query = executeRequete("SELECT * FROM produit prod, promotion prom WHERE prom.id_promo = prod.id_promo AND '$_POST[code_promoPanier]' = prom.code_promo AND '".$_SESSION['panier']['id_produit'][$i]."' = prod.id_produit");
    	}
     
    	$verif_promo = $query->fetch_assoc();
    }
    if(!empty($_POST['code_promoPanier']) && isset($_POST['validation_codePromo'])){
    	$query_code = executeRequete("SELECT id_produit, code_promo, prod.id_promo, reduction FROM promotion prom, produit prod WHERE '$_POST[code_promoPanier]' = prom.code_promo AND prod.id_produit IN (".implode(",", $_SESSION['panier']['id_produit'] )." ) AND prod.id_promo = prom.id_promo");
    	$resultat_queryCode = $query_code->fetch_assoc();
    }
    Alors la boucle fonctionne mais j'ai pas l'impression que mes 2 requêtes puissent valider le code promo entré dans le champs : code_promoPanier et vérifier qu'il soit bien attribué à l'un des id_produit contenu dans le panier.

    De plus, pour calculer le montant total du panier avec la réduction, je ne vois pas trop la manière de faire.

    J'ai pensé à calculer le montant total * ( reduction /100) mais ça ne me calculera pas le montant total avec la réduction si l'utilisateur ajoute un second code promo, puis un 3ème, ... Ou sinon peut être que sur les sites ecommerce il est limité à un seul ?

    Encore merci de votre patience.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2015
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2015
    Messages : 68
    Points : 33
    Points
    33
    Par défaut
    Bon c'est fait, j'ai réussi. Merci.

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

Discussions similaires

  1. Array to string conversion
    Par deathart dans le forum CodeIgniter
    Réponses: 17
    Dernier message: 04/09/2012, 13h08
  2. [MySQL] PB : "Notice: Array to string conversion"
    Par moma586 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/07/2012, 09h11
  3. [MySQL] Formulaire erreur Array to string conversion
    Par akamaru dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/12/2008, 11h02
  4. Réponses: 2
    Dernier message: 28/12/2007, 12h09
  5. [D6] Conversion Array of String en String
    Par wizdom dans le forum Delphi
    Réponses: 2
    Dernier message: 23/05/2006, 17h01

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