Récupérer une somme

Eléphant du PHP | 166 Messages

06 avr. 2017, 13:21

Bonjour
j'ai le code :

Code : Tout sélectionner

//effectue la somme total de mon panier $result=$mysqli->query('SELECT sum(panier_prix) FROM panier'); echo $result; }
il me met une erreur : Catchable fatal error: Object of class mysqli_result could not be converted to string

Comment faire pour récupérer le total de ma somme ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

06 avr. 2017, 13:42

bonjour,

oui effectivement.
as tu regardé la doc de mysqli_result ?
il faut toujours un "fetch" pour avoir une donnée (quelque soit la base ou le driver).

je te conseil de mettre un alias sur ta somme pour l'utiliser plus simplement.

il ne te manquerais pas un prédicat ? tu veux vraiment la somme de toute la table ? ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

06 avr. 2017, 22:09

merci

Eléphant du PHP | 166 Messages

06 avr. 2017, 22:12

toujours avec mon code, j'ai maintenant un petit pb.

Code : Tout sélectionner

require('../inc_/inc_sessionUser.php'); if (isset($_GET['nom']) AND isset($_GET['prix'])) { //echo 'Votre panier comporte : ' .$_GET['nom']. ' ' .$_GET['prix']. ' €'; $nom = $_GET['nom']; $prix = $_GET['prix']; //requete INSERT INTO if ($mysqli -> query('INSERT INTO panier (panier_nom,panier_prix) VALUES ("'.$nom.'","'.$prix.'")')) { //creation d'un tableau $result = $mysqli->query('SELECT panier_nom,panier_prix FROM panier'); while ($row = $result -> fetch_array()): $panier [$row['panier_nom']] = $row['panier_prix']; endwhile; { //effectue la somme total de mon panier $result = $mysqli->query('SELECT sum(panier_prix) as totalPanier FROM panier'); $row = $result -> fetch_array(); $total = $row['totalPanier']; } } } ?> <div> <h1>Mon Panier</h1> <ul><?php foreach ($panier as $cle => $val): ?> <li><?php echo $cle. ' - ' .$val. '€'; ?></li><!--affiche mon panier--> </ul> <?php endforeach ?> <h1>Somme du panier = <?php echo $total?> </h1> </div> <br><a href="../page/produits.php">Retour vers les Produits.</a>;
lorsque je rafraîchi sur Mozilla, cela m’incrémente la somme avec le dernier choix de mon produit ?

Eléphant du PHP | 385 Messages

06 avr. 2017, 23:35

Bonjour,

Quand tu rafraîchis quels sont les paramètres dans ton url?

Eléphant du PHP | 166 Messages

07 avr. 2017, 07:46

et bien les derniers enregistrés.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 avr. 2017, 08:44

du coup c'est normal vu qu'a chaque tu demandes d'ajouter l'article au panier.
a la fin de l'insertion il faut que tu fasse une redirection pour virer les paramètre d'url et éviter ce genre de problème.

juste en passant, généralement on fait référence au produit avec une clef primaire et l'on ne copie pas ses informations dans une autre table (première forme normale : atomicité). Ce serait pas mal d'avoir une quantité pour les articles non ? (ou alors tu vend que des choses unitaire ?).

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

08 avr. 2017, 13:17

moogli :
a la fin de l'insertion il faut que tu fasse une redirection pour virer les paramètre d'url et éviter ce genre de problème.
Comment fait on une "redirection" ? y a t'il un code spécifique ?