2013-08-27 144 views
0

沒有更新的領域我目前有以下掙扎:更新查詢表

$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個最新發現,我在......拆呢,看看有什麼是評價一個完整的查詢不工作更新... 我做了回聲和vardump ...在循環外,他們給了我正確的值...但在循環內,他們有我11111而不是5 ...例如...不知道什麼我做錯了....我很新的PHP(2天?),並希望得到解決......

+2

爲什麼要做三單獨的更新查詢,而不是更新一個查詢中的所有3個字段? – Barmar

+0

在將數據傳遞給數據庫之前先回顯$ ct值。 – sudhakar

+0

在他們之上有一個註釋掉的查詢,正在做所有巴爾馬......我評論了它,並分解了它,看看問題出在哪裏。 – postgresdbs

回答

3

問題是與該開關。

switch($ct){ 
    case $ct=1 : $dmgift=25000;break; 
    ... 
} 

第一種情況的變化$ct爲1,因此其價值始終爲1在SQL查詢,以便它看起來像查詢不工作。

在任何情況下開關不起作用這樣,你需要分開,如果短語:

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; 
} 

另外請注意,您不必對案件2 $ct和4之間

+0

這就是它!不能相信我的錯誤! '='到'=='......哈哈......比哭泣更好笑......接受。謝了哥們 – postgresdbs

-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']."'"); 

刪除從這裏

+0

你的查詢和OP的查詢有什麼區別? –

+0

@YogeshSuthar你也可以看到什麼是我的查詢和OP查詢之間的差別..? –

+3

這沒有什麼區別... – postgresdbs

-1

使用單引號";"分號爲MySQL

檢查$ CT值
$db->query("UPDATE ".USERS." SET won_current='$checkwon' WHERE id = '".$USER['id']."'"); 
+1

這並沒有解決問題...爲什麼我的3個查詢中的2個傳遞,另一個不是?完全相同的語法...相同的數據庫屬性特性爲$ checkwon ...但仍resfusing工作... – postgresdbs

0

值。

如果$ checkwon大於1000不大於或等於,$ CT值將保持不變分貝值

$db->query("UPDATE ".USERS." SET ctt='" . $ct . "' WHERE `id` = ".$USER['id'].";"); 
+0

這個查詢沒有什麼區別都是相同的 – sudhakar