[RESOLU] PHP 5.6 - Fonction SUM

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] PHP 5.6 - Fonction SUM

Re: PHP 5.6 - Fonction SUM

par polux78 » 25 oct. 2015, 17:31

Bonjour Ryle
Grand merci pour ton mini cours
J'ai résolu mes listings et lecture d'une fiche d'après le listing.
Maintenant je me bat avec la modification de fiche et la duplication de fiche
Je souffre !!!
Cordialement
Polux78

Re: PHP 5.6 - Fonction SUM

par Ryle » 23 oct. 2015, 10:54

Bonjour,

$data est un tableau et pas une chaine de caractères, tu ne peux pas l'afficher avec un echo, il faut utiliser print_r ou var_dump :)

Le principe :
// construire la requête
$sum0 = "SELECT SUM(p_brut_fin) FROM conserves WHERE nature = 'Fruits' "; 
// exécuter la requête
$req = mysqli_query($link, $sum0) or die('Erreur SQL !<br>'.$sum0.'<br>'.mysqli_error());
// récupérer le résultat
$data = mysqli_fetch_array($req);
// afficher le résultat : premier index du tableau
// print_r($data);
// utiliser le résultat
$somme = $data[0] / 1000;
Pour plus de lisibilité et il vaut mieux mettre un alias à la colonne retournée et utilisé cet index pour récupérer le résultat
$sum0 = "SELECT SUM(p_brut_fin) AS somme FROM conserves WHERE nature = 'Fruits' "; // alias
$req = mysqli_query($link, $sum0) or die('Erreur SQL !<br>'.$sum0.'<br>'.mysqli_error());
$data = mysqli_fetch_assoc($req);
$somme = $data['somme'] / 1000; // utilisation de l'alias comme index

Re: PHP 5.6 - Fonction SUM

par polux78 » 22 oct. 2015, 18:38

Merci OR 1 pour ta réponse
Cependant je patauge grave...

Ligne 88
$data = mysqli_fetch_array($req, MYSQLI_ASSOC);
echo $data;
Notice: Array to string conversion in F:\EasyPHP_VC11\data\localweb\conserves\stats.php on line 88

Ligne 89
$data1 = $data / 1000;
Fatal error: Unsupported operand types in F:\EasyPHP_VC11\data\localweb\conserves\stats.php on line 89

Ligne 92
$p_brut_fruits_1 = number_format($p_brut_fruits_1, 2, ',', ' ');
Warning: number_format() expects parameter 1 to be double, array given in F:\EasyPHP_VC11\data\localweb\conserves\stats.php on line 92

FICHIER ACTUEL
// Fruits : Poids brut
$sum0 = "SELECT SUM(p_brut_fin) FROM conserves WHERE nature = 'Fruits' ";
$req = mysqli_query($link, $sum0);// or die('Erreur SQL !<br>'.$sum0.'<br>'.mysqli_error());
$data = mysqli_fetch_array($req, MYSQLI_ASSOC);
echo $data;
$data1 = $data / 1000;
$p_brut_fruits_1 = $data;
// echo $p_brut_fruits_1;
$p_brut_fruits_1 = number_format($p_brut_fruits_1, 2, ',', ' ');

PHP 5.6 me pose de gros problèmes vu le nombre de fichiers que j’ai à reprendre…,
Pourquoi tant d’erreurs par rapport à PHP 5.4

Merci pour votre aide.
Cordialement
polux78

Re: PHP 5.6 - Fonction SUM

par or 1 » 22 oct. 2015, 17:22

$data = mysqli_fetch_array($req, MYSQLI_ASSOC);
donc le résultat de la requete est dans $data, et $data n'est plus utilisée par la suite....

Re: PHP 5.6 - Fonction SUM

par polux78 » 22 oct. 2015, 15:43

OK Ryle,
Merci d'avoir répondu.
Cependant je n'arrive pas à lire le résultat de $sum0.
Par rapport à ma formulation en PHP 5.4 qui fonctionne,
Je ne vois pas comment résoudre mes lignes de programme en PHP 5.6
Amicalement
Polux78

Re: PHP 5.6 - Fonction SUM

par Ryle » 22 oct. 2015, 13:16

Peut être ici :
$sum0 = "SELECT SUM(p_brut_fin) FROM conserves WHERE nature = 'Fruits' "; 
...
$data1 = 1000;
$p_brut_fruits_1 = $sum0 / $data1;
une chaine de caractère ($sum0) divisé par 1000 ($data1), ça risque pas de faire grand chose ;)

PHP 5.6 - Fonction SUM

par polux78 » 22 oct. 2015, 12:13

Bonjour les ténors de la profession…,

J’essaie de transposer mes fichiers « mysql » en « mysqli »
J’ai résolu de nombreux problèmes, mais je bloque devant la fonction « SUM »

PHP 5.4
// Fruits : Poids brut
$tempo = 0;
$sum0 = mysql_result(mysql_query("SELECT SUM(p_brut_fin) FROM conserves WHERE nature = 'Fruits' "), 0);
$p_brut_fruits_1 = $sum0/1000;
$p_brut_fruits = number_format($p_brut_fruits_1, 2, ',', ' ');

*****Cela fonctionne, le résultat est bon*****

PHP 5.6
// Fruits : Poids brut
$sum0 = "SELECT SUM(p_brut_fin) FROM conserves WHERE nature = 'Fruits' ";
$req = mysqli_query($link, $sum0);// or die('Erreur SQL !<br>'.$sum0.'<br>'.mysqli_error());
$data = mysqli_fetch_array($req, MYSQLI_ASSOC);
$data1 = 1000;
$p_brut_fruits_1 = $sum0 / $data1;
// echo $sum0;
$p_brut_fruits = number_format($p_brut_fruits_1, 2, ',', ' ');

*****Pas d’erreur renvoyée par PHP, mais le résultat est toujours à ZERO !???*****

Je ne vois pas ou je bug.
Merci pour votre aide.
Polux78