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 :

Fatal error: Uncaught Error: Unsupported operand types


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Par défaut Fatal error: Uncaught Error: Unsupported operand types
    Bonjour,
    Dans une fonction je récupére un montant total
    cependant dans une deuxième fonction je souhaite récupérer l'element pour l'affiche puis effectuer des calcul futur

    le probleme j'obtiens une erreur :
    Fatal error: Uncaught Error: Unsupported operand types
    sur la ligne : $ResultatTotalHT = $ResultatTotalHT+$TotalHT;

    voici mes deux fonctions

    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
    19
    20
    21
     
    //calcul montant hors taxe commande
    function montant_hors_taxe_commande()
    {
    $bdd = connexion_bdd();
    $requete = $bdd->query("SELECT SUM(quantite_article * tarif_article) FROM tbl_ligne_commande INNER JOIN tbl_commande ON tbl_ligne_commande.id_commande = tbl_commande.id_commande WHERE nom_commande = '".$_SESSION['id_commande']."' ");
    $ResultatTotalHT = $requete->fetchAll();
    return $ResultatTotalHT;
    // return un Array
    }
     
    // Affichage pied de la commande
    function pied_commande (){
    $ResultatTotalHT = 0;
    $TotauxHT = montant_hors_taxe_commande();
    foreach ($TotauxHT as $TotalHT)
    	{
    $ResultatTotalHT = $ResultatTotalHT+$TotalHT;
    	}								
    return $TotalHT;		
    }
    merci pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 587
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 587
    Par défaut
    Salut,

    Avant la somme fait un cast sur ou double. Vérifie que tu récupères bien un nombre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Par défaut
    Je viens d'essayer cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function pied_commande (){
    $ResultatTotalHT = 0;
    $TotauxHT = montant_hors_taxe_commande();
     
    foreach ($TotauxHT as $TotalHT)
    	{
    echo (INT)$TotalHT;
    $ResultatTotalHT = $ResultatTotalHT+$TotalHT;
    	}								
    return $TotalHT;		
    }
    Il me retourne :

    1
    Fatal error: Uncaught Error: Unsupported operand types in /home/mbi85/tdn.tools-mbi85.fr/webshop/script/function-front.php:455 Stack trace: #0 /home/mbi85/tdn.tools-mbi85.fr/webshop-client/mon-panier.php(48): pied_commande() #1 {main} thrown in /home/mbi85/tdn.tools-mbi85.fr/webshop/script/function-front.php on line 455

    Le chiffre 1 apparait

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    $TotalHT est un tableau.

    A+.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Février 2014
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2014
    Messages : 145
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,

    $TotalHT est un tableau.

    A+.
    Oui ma première fonction me ressort un array

    voici un exemple de retour

    array(1) { [0]=> array(2) { ["SUM(quantite_article * tarif_article)"]=> string(4) "3810" [0]=> string(4) "3810" } }

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    montant_hors_taxe_commande() retourne un tableau de tableau, donc $TotalHT est un tableau avec une seule colonne "SUM(quantite_article * tarif_article)". Utilise des alias quand tu utilises des fonctions dans la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach ($TotauxHT as $TotalHT)
    	{
    $ResultatTotalHT += floatval ($TotalHT[0]);
    	}
    Après, pourquoi faire l'addition avec PHP or que ta requête ne retournera qu'une seule ligne?

    A+.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/08/2013, 11h53
  2. Fatal error The element type "HR" must be terminated
    Par jeffbuckley dans le forum IGN API Géoportail
    Réponses: 1
    Dernier message: 29/11/2011, 11h21
  3. [PHP 5.2] Fatal error: Unsupported operand types
    Par ju0123456789 dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2010, 18h07
  4. Réponses: 2
    Dernier message: 25/03/2009, 21h40
  5. [MySQL] Fatal error: Unsupported operand types in..
    Par Sekigawa dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/03/2008, 10h58

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