[Mysql] SUM(planetes.u11) + SUM(attaques.u11) == NULL ?

Eléphant du PHP | 231 Messages

17 mars 2006, 22:26

Si je fait SUM( planetes.u11 ) tout seul j'obtiens 5
ensuite SUM( attaques.u11 ) tout seul j'ai NULL jusqu'a la c'est bon

mais quand je fait SUM( planetes.u11 ) + SUM( attaques.u11 ) ça me renvoi aussi NULL :?

La requete complete :

Code : Tout sélectionner

$sql = "SELECT ". "(SUM(planetes.u11) + SUM(attaques.u11))*".$$p11." + ". "(SUM(planetes.u12) + SUM(attaques.u12))*".$$p12." + ". "(SUM(planetes.u13) + SUM(attaques.u13))*".$$p13." + ". "(SUM(planetes.u14) + SUM(attaques.u14))*".$$p14." + ". "(SUM(planetes.u15) + SUM(attaques.u15))*".$$p15." + ". "(SUM(planetes.u16) + SUM(attaques.u16))*".$$p16." + ". "(SUM(planetes.u21) + SUM(attaques.u21))*".$$p21." + ". "(SUM(planetes.u31) + SUM(attaques.u21))*".$$p31." + ". "(SUM(planetes.u32) + SUM(attaques.u32))*".$$p32." + ". "(SUM(planetes.u33) + SUM(attaques.u33))*".$$p33." + ". "(SUM(planetes.u41) + SUM(attaques.u41))*".$$p41." + ". "(SUM(planetes.u42) + SUM(attaques.u42))*".$$p42." + ". "(SUM(planetes.u43) + SUM(attaques.u43))*".$$p43." + ". "(SUM(planetes.u44) + SUM(attaques.u44))*".$$p44." ". "FROM planetes, attaques ". "WHERE planetes.players = ".$id." AND attaques.players = ".$id;
ça viens pas des $$p j'ai vérifié :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mars 2006, 23:37

utilise la fonction IFNULL de mysql

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

18 mars 2006, 16:11

Ou même COALESCE(), qui devrait être un petit peu plus portable (PostgreSQL, Oracle, probablement SQLite et Firebird):

SUM(COALESCE(champs))

PS: il faudrait que tu te documentes sur la normalisation des données, sinon tes requêtes vont être très compliquées et/ou lentes:
Wikipedia: Database normalization - Intro to Normalization - Wikipédia: Formes normales