Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1626 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Faire une somme en php

 

Sujet(s) à lire :
    - Visual C++
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire une somme en php

n°1965839
massbbc2
Posté le 14-02-2010 à 12:41:29  profilanswer
 

je suis vraiment pas un pro en php et je voudrais faire des somme à partir d'un certains nombre de critères que l'utilisateurs aura à selectionner.
Voici mon code :
$colname1__sum = '-1';
$colname2__sum = '-1';
$colname3__sum = '-1';
$query_sum="";
$sum = "";
$totalRows_sum = "";
   
 if (isset($HTTP_GET_VARS['code']) && isset($HTTP_GET_VARS['sens']) && isset($HTTP_GET_VARS['nature'])) {
 if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['sens']) && !empty($HTTP_GET_VARS['nature'])) {
  $colname1__sum = $HTTP_GET_VARS['code'];
  $colname2__sum = $HTTP_GET_VARS['sens'];
  $colname3__sum = $HTTP_GET_VARS['nature'];
  echo 'testSOMME1';
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'", $colname1__sum,$colname2__sum,$colname3__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  $totalRows_sum = $sum->RecordCount();
 
}
else
{
if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['sens'])) {
  $$colname1__sum = $HTTP_GET_VARS['code'];
  $$colname2__sum = $HTTP_GET_VARS['sens'];
  echo 'testSOMME2';
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'", $colname1__sum,$colname2__sum);
  $rs_sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  $totalRows_sum = $rs_sum->RecordCount();
 
}
else
{
if (!empty($HTTP_GET_VARS['sens']) && !empty($HTTP_GET_VARS['nature'])) {
  $colname2__sum = $HTTP_GET_VARS['sens'];
  $colname3__sum = $HTTP_GET_VARS['nature'];
  echo 'testSOMME3';
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'", $colname2__sum,$colname3__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  $totalRows_sum = $sum->RecordCount();
 
}
else
{
if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['nature'])) {
  $colname1__sum = $HTTP_GET_VARS['code'];
  $colname3__sum = $HTTP_GET_VARS['nature'];
  echo 'test4';
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s' AND f_cargo.nature_colis='%s'", $colname1__sum,$colname3__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
$totalRows_sum = $sum->RecordCount();
 
}
else
{
if (!empty($HTTP_GET_VARS['code'])) {
  $colname1__sum = $HTTP_GET_VARS['code'];
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'", $colname1__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
$totalRows_sum = $sum->RecordCount();
 
}
else
{
if (!empty($HTTP_GET_VARS['sens'])) {
  $colname2__sum = $HTTP_GET_VARS['sens'];
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.import_export='%s'", $colname2__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  $totalRows_sum = $sum->RecordCount();
 
}
else
{if (!empty($HTTP_GET_VARS['nature'])) {
  $colname3__sum = $HTTP_GET_VARS['nature'];
  $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_cargo.nature_colis='%s'", $colname3__sum);
  $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  $totalRows_sum = $sum->RecordCount();
 
}
 
else
{
$query_sum=sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'" );
$sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
$totalRows_sum = $sum->RecordCount();
}
}
}
}
}
}
}
}  
 
 
Voici le code d'affichage du résultat:<?php echo $sum->Fields('sum_poids_colis_1'); ?>
Le problème c'est qu'à l'affichage du résultat, j'ai cette erreur de ligne exactement là ou je l'affiche.
Fatal error: Call to a member function on a non-object in c:\easyphp1-8\www\decisionnel\search2.php on line 461
 
Merci d'avance pour vos différents aides.
 

mood
Publicité
Posté le 14-02-2010 à 12:41:29  profilanswer
 

n°1965938
Pascal le ​nain
Posté le 14-02-2010 à 23:16:59  profilanswer
 

Utilise la balise de code stp
 

Code :
  1. $colname1__sum = '-1';
  2. $colname2__sum = '-1';
  3. $colname3__sum = '-1';
  4. $query_sum="";
  5. $sum = "";
  6. $totalRows_sum = "";
  7.  
  8. if (isset($HTTP_GET_VARS['code']) && isset($HTTP_GET_VARS['sens']) && isset($HTTP_GET_VARS['nature']))
  9. {
  10.      if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['sens']) && !empty($HTTP_GET_VARS['nature']))
  11.      {
  12.           $colname1__sum = $HTTP_GET_VARS['code'];
  13.           $colname2__sum = $HTTP_GET_VARS['sens'];
  14.           $colname3__sum = $HTTP_GET_VARS['nature'];
  15.           echo 'testSOMME1';
  16.           $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'", $colname1__sum,$colname2__sum,$colname3__sum);
  17.           $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  18.           $totalRows_sum = $sum->RecordCount();
  19.     }
  20.     else
  21.     {
  22.         if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['sens']))
  23.         {
  24.               $$colname1__sum = $HTTP_GET_VARS['code'];
  25.               $$colname2__sum = $HTTP_GET_VARS['sens'];
  26.               echo 'testSOMME2';
  27.               $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'", $colname1__sum,$colname2__sum);
  28.               $rs_sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  29.               $totalRows_sum = $rs_sum->RecordCount();
  30.         }
  31.         else
  32.         {
  33.             if (!empty($HTTP_GET_VARS['sens']) && !empty($HTTP_GET_VARS['nature']))
  34.             {
  35.                   $colname2__sum = $HTTP_GET_VARS['sens'];
  36.                   $colname3__sum = $HTTP_GET_VARS['nature'];
  37.                   echo 'testSOMME3';
  38.                   $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'", $colname2__sum,$colname3__sum);
  39.                   $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  40.                   $totalRows_sum = $sum->RecordCount();
  41.             
  42.             }
  43.             else
  44.             {
  45.                 if (!empty($HTTP_GET_VARS['code']) && !empty($HTTP_GET_VARS['nature']))
  46.                 {
  47.                       $colname1__sum = $HTTP_GET_VARS['code'];
  48.                       $colname3__sum = $HTTP_GET_VARS['nature'];
  49.                       echo 'test4';
  50.                       $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s' AND f_cargo.nature_colis='%s'", $colname1__sum,$colname3__sum);
  51.                       $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  52.                         $totalRows_sum = $sum->RecordCount();
  53.                 
  54.                 }
  55.                 else
  56.                 {
  57.                     if (!empty($HTTP_GET_VARS['code']))
  58.                     {
  59.                           $colname1__sum = $HTTP_GET_VARS['code'];
  60.                           $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'", $colname1__sum);
  61.                           $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  62.                         $totalRows_sum = $sum->RecordCount();
  63.                     
  64.                     }
  65.                     else
  66.                     {
  67.                         if (!empty($HTTP_GET_VARS['sens']))
  68.                         {
  69.                           $colname2__sum = $HTTP_GET_VARS['sens'];
  70.                           $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.import_export='%s'", $colname2__sum);
  71.                           $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  72.                           $totalRows_sum = $sum->RecordCount();
  73.                         
  74.                         }
  75.                         else
  76.                         {
  77.                             if (!empty($HTTP_GET_VARS['nature']))
  78.                             {
  79.                                   $colname3__sum = $HTTP_GET_VARS['nature'];
  80.                                   $query_sum = sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_cargo.nature_colis='%s'", $colname3__sum);
  81.                                   $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  82.                                   $totalRows_sum = $sum->RecordCount();
  83.                             
  84.                             }
  85.                              else
  86.                             {
  87.                                 $query_sum=sprintf("SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1 FROM (f_manifest INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id) WHERE f_manifest.code_agree_consignataire='%s'  AND f_manifest.import_export='%s'  AND f_cargo.nature_colis='%s'" );
  88.                                 $sum = $connexion->SelectLimit($query_sum) or die($connexion->ErrorMsg());
  89.                                 $totalRows_sum = $sum->RecordCount();
  90.                             }
  91.                         }
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.     }
  97. }


 
Je n'ai pas bien compris ce que tu souhaitais faire... Tu répètes en tous cas plusieurs fois le même code ou presque, et c'est mal, car tu pourrais sans doute simplifier tout ca  ;)


Message édité par Pascal le nain le 14-02-2010 à 23:34:32
n°1965947
Gigathlon
Quad-neurones natif
Posté le 15-02-2010 à 00:57:16  profilanswer
 

Imbriquer quelques if ne ferait probablement pas de mal effectivement.
 

Code :
  1. if (!empty($HTTP_GET_VARS['code']))
  2. {
  3.    if (!empty($HTTP_GET_VARS['sens']))
  4.    {
  5.        if (!empty($HTTP_GET_VARS['nature']))
  6.        {
  7.            ...
  8.        }
  9.        else
  10.        {
  11.            ...
  12.        }
  13.    }
  14.    else
  15.    {
  16.        ...
  17.    }
  18. }
  19. else
  20. {
  21.    ...
  22. }


Ca serait quand même plus propre et lisible.


Message édité par Gigathlon le 15-02-2010 à 00:59:55
n°1965948
ZePRiNCE
Coucou, tu veux voir ma RTX ?
Posté le 15-02-2010 à 00:59:23  profilanswer
 

Pour info on utilise plus $HTTP_GET_VARS depuis des années [:cend]  
utilise plutot : $_GET['code']
 
De meme pour les formulaires : $_POST
 
 
;)


---------------
A VENDRE: Razer Chroma ARGB Controller / Boitier / Support Triple Screen / Ventirad / Carte USB3
n°1965972
massbbc2
Posté le 15-02-2010 à 10:10:50  profilanswer
 

En faite j'ai testé ma requête et elle marche bien. Mon problème c'est au niveau de l'affichage du résultat qui me renvoie une erreur : Fatal error: Call to a member function on a non-object in c:\easyphp1-8\www\decisionnel\search2.php.  Voici comment j'affiche le résultat de ma requête: :<?php echo $sum->Fields('sum_poids_colis_1'); ?>  
Ya t-il une erreur ?????

n°1965977
stealth35
Posté le 15-02-2010 à 10:23:25  profilanswer
 

on va déjà simplifié ton truc

Code :
  1. $colname = array('code' => 'f_manifest.code_agree_consignataire',
  2.                 'sens'     => 'f_manifest.import_export',
  3.                 'nature'=> 'f_cargo.nature_colis');
  4.  
  5. $sql = 'SELECT SUM(f_cargo.poids_colis)  AS sum_poids_colis_1
  6.         FROM f_manifest
  7.         INNER JOIN f_cargo ON f_cargo.manifest_id=f_manifest.manifest_id';
  8.  
  9. if(!empty($_POST))
  10. {
  11.     $post = $_POST;
  12.     $data = array();
  13.     
  14.     foreach($post as $key => $value)
  15.     {
  16.         $data[] =  "{$colname[$key]}='%s'";
  17.     }
  18.     
  19.     $sql .= ' WHERE ' . implode(' AND ', $data);
  20.     
  21.     $query = vsprintf($sql, $post);
  22.     
  23.     echo $query;        
  24.  
  25.     //$sum             = $connexion->SelectLimit($query_sum) || exit($connexion->ErrorMsg());
  26.     //$totalRows_sum     = $sum->RecordCount();
  27. }


 
et puis ton erreur c'est dans la page search2.php a la ligne 461, je doute que ca soit le script que tu nous a passé, montre nous ce qu'il y'a autour de ca


Message édité par stealth35 le 15-02-2010 à 10:27:13
n°1966069
aideinfo
Posté le 15-02-2010 à 12:24:46  profilanswer
 

Tu utilises un objet $sum qui n'a pas été initialisé comme tel. Avant d'utiliser un objet, tu dois créer une instance de cet objet par un new.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
n°1966078
massbbc2
Posté le 15-02-2010 à 12:50:09  profilanswer
 

Merci a tous. J'ai trouvé mon erreur c'etait juste une erreur d'acollade non fermé dans mon code


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Faire une somme en php

 

Sujets relatifs
Requete avec somme sur valeur et filtre sur datePb de somme sous Business object
somme de lignes colonne B avec contrainte sur colonne ARéalisation de la somme parallèle des éléments d’une matrice: openmp
Union de plusieurs tables de même structure avec somme[Access] Fonction "SOMME" dans un etat qui ne fonctionne pas
somme si et ranges variables[RESOLU] Tri + somme pour une colonne
[VBA] Somme des valeurs dans une colonne...Somme de 2 tables
Plus de sujets relatifs à : Faire une somme en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR