Faire une somme dans une requete

Résolu
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 - 20 juin 2006 à 11:26
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 - 20 juin 2006 à 14:53
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

9 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2006 à 12:16
Hello,

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

SUM (machin) AS somme

...
$aData['somme']
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2006 à 14:34
Rajoute un GROUP BY sites.code_clients, je suppose.
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 juin 2006 à 11:32
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???"
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
20 juin 2006 à 11:38
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
20 juin 2006 à 12:46
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???"
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
20 juin 2006 à 14:00
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juin 2006 à 14:18
C'est ok comme ça. Mais suis pas sûr que tu obtiennes ce que tu veux, là...
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
20 juin 2006 à 14:27
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
0
atomik29 Messages postés 87 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 17 décembre 2008 1
20 juin 2006 à 14:53
Merci malalam pout ton aide.
a toi aussi coockiesch.

Atomik29
0
Rejoignez-nous