Faire une somme dans une requete [Résolu]

Signaler
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
-
Bonjour a tous
Voila je voudrai faire la somme de valeurs de tickets pour un client donné
J'ai 2 tables (clients et sites) -> 1 client peut avoir plusieurs sites.

J'ai un codeclient dans les 2 tables, et ma variable "val_ticket" se trouve dans la table sites.

Sur ma page j'affiche des infos pour chaque client ( les sites le concernant avec la valeur de ticket de chaque site)

je voudrai rajouter une colonne avec la somme des ticket d'un clients

$sql = "SELECT SUM(sites.val_ticket) FROM sites,clients WHERE clients.codeclient=sites.codeclient";
$somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );
$detail = mysql_fetch_assoc($somme);
    ?><td>
    <? echo "$detail"; ?>
    </td>

Je dois avoir une erreur dans ma requete parce que comme resultats j'ai toujours "array".
Si quelqu'un a une idee...
Merci
Atomik29
A voir également:

9 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Hello,

tu fais un fetch_assoc...
donc forcément...

SUM (machin) AS somme

...
$aData['somme']
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
Rajoute un GROUP BY sites.code_clients, je suppose.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Tu dois accéder à $detail[0] puisque mysql_fetch_assoc retourne un tableau! :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
si je fe ca je n'ai plus rien du tout...

en faite je fais une premiere requete qui maffiche des details ligne/ligne...

$query = "SELECT S.codesite,S.nomsite,S.numtypecontrat,S.val_ticket,S.codeclient, TC.nomtypecontrat, C.codeclient,C.nomclient  FROM sites S,typescontrat TC, clients C  WHERE C.codeclient=S.codeclient AND TC.codetypecontrat=S.numtypecontrat AND ( TC.codetypecontrat='5' OR TC.codetypecontrat='6' OR TC.codetypecontrat='7') ORDER BY C.nomclient ASC , S.nomsite ASC,TC.codetypecontrat ASC";
$req   = mysql_query($query)or die('Erreur'.$sql.'
'.mysql_error() );
$compteur = mysql_num_rows($req) ;
while ($line  = mysql_fetch_array($req))
{
    $nomclient = $line ["nomclient"];
    $nomsite = $line ["nomsite"];
    $nomtypecontrat = $line ["nomtypecontrat"];
    $val_ticket = $line ["val_ticket"];
   
    <td>   
    <? echo"$nomclient"; ?>
    </td>
    <td>   
    <? echo"$nomsite"; ?>
    </td>
    <td>   
    <? echo"$nomtypecontrat"; ?>
    </td>       
    <td>   
    <? echo"$val_ticket"; ?>
    </td>
    ....
    ///// et la ma 2eme requete /////
    <?
    $sql = "SELECT SUM(sites.val_ticket) FROM sites,clients WHERE clients.codeclient=sites.codeclient";
    $somme = mysql_query($sql) or die ('Erreur : '.mysql_error() );
    $detail = mysql_fetch_assoc($somme);
    ?><td>
    <? echo "$detail"; ?>
    </td>
    </tr>
<? } ?>
</table>

du coup je ev afficher plusierus fois la meme somme mais si deja jarriver a obtenir qqchose ca serait pas mal...
Atomik29
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Héhé, je suis un boolay, je les confonds tjs! :D

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
moi aussi je suis un peu boulet et surtout debutant....

en resume il faut que je face un fetch_assoc ou pas ?

$sql = "SELECT SUM(sites.val_ticket) AS somme FROM sites,clients WHERE clients.codeclient=sites.codeclient";
    $req = mysql_query($sql) or die ('Erreur : '.mysql_error() );
    $detail = mysql_fetch_assoc($req);
    ?><td>
    <? echo "$detail['somme']"; ?>

Atomik29
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
22
C'est ok comme ça. Mais suis pas sûr que tu obtiennes ce que tu veux, là...
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
Oui tu as raison j'obtiens la somme des tickets de tout les clients...
Je pensais qu'avec ma condition cela suffirait.
Aurais-tu une idee pour que j'obtienne la somme pour chaque client ???

Atomik29
Messages postés
87
Date d'inscription
jeudi 26 août 2004
Statut
Membre
Dernière intervention
17 décembre 2008
1
Merci malalam pout ton aide.
a toi aussi coockiesch.

Atomik29