Multiplication dans une requête MySQL. Problème
$stake = (($winnings > $tablelimit)? $tablelimit : $winnings);if($tabletype == 't') $tablelow = $tablelimit;if(($stake >= $tablelow) && ($stake > 0)){$result = mysql_query("update ".DB_POKER." set p".$action."name = '".$plyrname."', p".$action."bet = 'F', p".$action."pot = '".$stake."' where gameID = '".$gameID."' ");$bank = $winnings-$stake;if($tabletype == 't'){$result = mysql_query("update ".DB_STATS." set tournamentsplayed = tournamentsplayed + 1 where ID = '".$_SESSION['idplayer']."' ");$result2 = mysql_query("update ".DB_CLICKS." set clicks = '".$bank."' where id = '".$_SESSION['idplayer']."' ");}else{$result = mysql_query("update ".DB_CLICKS." set clicks = '".$bank."' where id = '".$_SESSION['idplayer']."' ");$result2 = mysql_query("update ".DB_STATS." set gamesplayed = gamesplayed + 1 where ID = '".$_SESSION['idplayer']."' "); }$result = mysql_query("update ".DB_PLAYERS." set gID = '".$gameID."', lastmove = '".($time+3)."', timetag = '".($time+3)."' where username = '".$plyrname."' "); sys_msg($plyrname.' '.GAME_PLAYER_BUYS_IN.' '.money($stake),$gameID); ?>.......... (etc..)
Réponses apportées à cette discussion
Salut Arlibus,
Pour comprendre ce code, il faudrait au moins qu'il soit lisible, tu ne crois pas ? Donc je suggère de commencer par une remise en forme dans ce style-là :
<?php if (($tabletype == 't') && ($hand != '')) { } $stake = (($winnings > $tablelimit) ? $tablelimit : $winnings); if ($tabletype == 't') { $tablelow = $tablelimit; } if (($stake >= $tablelow) && ($stake > 0)) { $sql1 = "UPDATE ". DB_POKER ." SET ". "p". $action ."name = '". $plyrname ."', ". "p". $action ."bet = 'F', ". "p". $action ."pot = '". $stake ."' ". "WHERE gameID = '". $gameID ."' "; $bank = $winnings - $stake; if ($tabletype == 't') { $sql2 = "UPDATE ". DB_STATS ." SET " . "tournamentsplayed = tournamentsplayed + 1 " . "WHERE ID = '". $_SESSION['idplayer'] ."' "; $sql3 = "UPDATE ". DB_CLICKS ." SET " . "clicks = '". $bank ."' " . "WHERE id = '". $_SESSION['idplayer'] ."' "; } else { $sql4 = "UPDATE ". DB_CLICKS ." SET " . "clicks = '". $bank ."' " . "WHERE id = '". $_SESSION['idplayer'] ."' "; $sql5 = "UPDATE ". DB_STATS ." SET " . "gamesplayed = gamesplayed + 1 " . "WHERE ID = '". $_SESSION['idplayer'] ."' "; } $sql6 = "UPDATE ". DB_PLAYERS ." SET " . "gID = '". $gameID ."', " . "lastmove = '". ($time + 3) ."', " . "timetag = '". ($time + 3) ."' " . "WHERE username = '". $plyrname ."' "; sys_msg ($plyrname . ' ' . GAME_PLAYER_BUYS_IN . ' ' . money ($stake), $gameID); } ?> .......... (etc..)
Pas mieux comme ça ?
Ensuite, la question qui me vient est la suivante : as-tu essayé de faire afficher tes variables avant et après l'opération ?, quelque chose comme ceci par exemple ?
$bank = ($winnings - $stake) * 2.2;
Sinon, qu'as-tu essayé et quel résultat as-tu obtenu ?
Je ne peux pas vraiment voir d'echo dans ce script. Cependant je peux voir à quoi ressemble le résultat de $bank à travers le résultat uploadé dans ma BDD.
J'ai essayé de faire:
$bank2 = ($winnings - $stake);
$bank = $bank2 * 2;
Mais ça fait planté le script complétement (on peut plus s'inscrire sur une table)
Et quand je fait
- $bank = ($winnings - $stake) * 2.2;
- $bank = ($winnings - $stake);
J'ai aussi essayé
$bank2 = 2.2*$winnings - 2.2$stake;
et
$bank2 = 2.2($winnings - $stake);
Mais là encore c'est comme s'il ne détecté pas la multiplication .
Désolé, pour la 1ere c'était
$bank2 = 2.2*$winnings - 2.2*$stake;
$result2 = mysql_query("update ".DB_CLICKS." set clicks = '".$bank."' where id = '".$_SESSION['idplayer']."' "); Où $bank = $winnings-$stake Où $winnings = $statsr['clicks'] et $stake = (($winnings > $tablelimit)? $tablelimit : $winnings) . Où $tablelimit = $cr['tablelimit']
Je ne saisis pas comment tu t'y es pris pour ne pas pouvoir tester tout ce qui doit l'être dans ton code. N'as-tu pas installé ce script en local pour le tester avant mise en ligne ?
