我目前正在努力解决以下问题:
$res = $db->uniquequery("SELECT distinct won_current,ctt,darkmatter FROM ".USERS." WHERE `id` = '".$USER['id']."'");
$checkwon = $res['won_current'];
$ct=$res['ctt'];
$dm=$res['darkmatter'];
这些似乎有效。现在...
$dmgift=0;
while($checkwon>=1000)
{
$ct=$ct+1;
//incrementing $ct doesnt seem to work in the loop but it works fine outside it
$checkwon=$checkwon-1000;
//threshold ranges and setting of dmgift.
switch($ct){
case $ct=1 : $dmgift=25000;break;
case $ct>=5 && $ct<10: $dmgift=50000;break;
case $ct>=10 && $ct<15: $dmgift=75000;break;
case $ct>=15 && $ct<20: $dmgift=100000;break;
case $ct>=20 : $dmgift=150000;break;
}
$dm=$dm+$dmgift;
//$db->query("UPDATE ".USERS." SET won_current=$checkwon,ctt=$checkthreshold,darkmatter=$dm WHERE `id` = ".$USER['id'].";");
$db->query("UPDATE ".USERS." SET won_current=$checkwon WHERE `id` = ".$USER['id'].";");
$db->query("UPDATE ".USERS." SET ctt='$ct' WHERE `id` = ".$USER['id'].";"); // this update query is not passing.db field remains the same
$db->query("UPDATE ".USERS." SET darkmatter=$dm WHERE `id` = ".$USER['id'].";");
}
请告知...其他2个更新查询正在通过...如果您注意到上述3个更新,我有一个完整的查询评论...拆分它以查看更新中无效的内容... 我做了echo和vardump ...在循环之外他们给了我正确的值...但是在循环内他们有我11111而不是5 ...例如...不确定我做错了什么...我是非常新的PHP(2天?),并希望得到一个解决方案......
答案 0 :(得分:3)
问题出在开关上。
switch($ct){
case $ct=1 : $dmgift=25000;break;
...
}
第一种情况将$ct
更改为1,因此在SQL查询中它的值始终为1,因此看起来查询不起作用。
在任何情况下,开关都不会像那样工作,你需要单独的if短语:
if( $ct == 1 ) {
$dmgift=25000
}
else if( $ct>=5 && $ct<10 ) {
$dmgift=50000;
}
else if( $ct>=10 && $ct<15 ) {
$dmgift=75000;
}
else if( $ct>=15 && $ct<20 ) {
$dmgift=100000;
}
else if( $ct>=20 ) {
$dmgift=150000;
}
另请注意,$ct
的案例不在2到4之间。
答案 1 :(得分:0)
检查$ ct值。
如果$ checkwon不大于或等于1000,$ ct值将保持相同的db值
$db->query("UPDATE ".USERS." SET ctt='" . $ct . "' WHERE `id` = ".$USER['id'].";");
答案 2 :(得分:-1)
更改您的更新查询
$db->query("UPDATE ".USERS." SET won_current = '".$checkwon."' WHERE `id` = '".$USER['id']."'");
$db->query("UPDATE ".USERS." SET ctt = '".$ct."' WHERE `id` = '".$USER['id']."'");
$db->query("UPDATE ".USERS." SET darkmatter = '".$dm."' WHERE `id` = '".$USER['id']."'");
从此处删除";"
分号
答案 3 :(得分:-1)
对MySQL的值使用单引号
$db->query("UPDATE ".USERS." SET won_current='$checkwon' WHERE id = '".$USER['id']."'");