Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新查询不更新表中的字段_Php_Mysql - Fatal编程技术网

Php 更新查询不更新表中的字段

Php 更新查询不更新表中的字段,php,mysql,Php,Mysql,我目前正在努力解决以下问题: $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($ch

我目前正在努力解决以下问题:

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


}
$dmgift=0;
而($checkwon>=1000)
{
$ct=$ct+1;
//递增$ct在循环中似乎不起作用,但在循环外效果很好
$checkwon=$checkwon-1000;
//阈值范围和dmgift的设置。
交换机($ct){
案例$ct=1:$dmgift=25000;中断;
案例$ct>=5&&$ct=10&&$ct=15&&$ct=20:$dmgift=150000;中断;
}
$dm=$dm+dmgift;
//$db->query(“UPDATE.USERS.”SET-won\u-current=$checkwon,ctt=$checkthreshold,darkmatter=$dm-WHERE`id`=“$USER['id']。”;”;
$db->query(“UPDATE.USERS.”SET-won\u-current=$checkwon其中`id`=“$USER['id'].”“;”;
$db->query(“UPDATE.USERS.”设置ctt='$ct'其中`id`='$USER['id'].“;”);//此更新查询未通过。db字段保持不变
$db->query(“UPDATE.USERS.”设置暗色材质=$dm,其中`id`=“$USER['id'].”;”;
}
敬请告知…其他2个更新查询通过良好…如果您注意到以上3个更新,我有一个完整的查询在…分割它,看看什么是不工作的更新。。。
我做了echo和vardump…在循环外,他们给了我正确的值…但在循环内,他们给了我11111而不是5…例如…不确定我做错了什么…我对php非常陌生(2天?),希望有一个解决方案…

更改您的更新查询

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

删除
”;“
此处的分号

对MySQL的值使用单引号

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

如果$checkwon不大于或等于1000,$ct值将保持相同的db值

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

问题出在开关上

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==1){
$dmgift=25000
}
如果($ct>=5&&$ct=10&&$ct=15&&$ct=20),则为其他情况{
$dmgift=150000;
}

另外请注意,
$ct
在2和4之间没有案例。

为什么要在一个查询中更新所有3个字段而不是三个单独的更新查询?在将$ct值传递给DB之前,回显$ct值。在它们的正上方有一个已注释掉的查询正在执行所有这些Barmar操作…我对其进行了注释并拆分,以查看问题可能出在哪里。问题是什么你的查询和OP的查询有什么区别?@Yogeshuthar你也可以看到我的查询和OP的查询有什么区别..?这两个查询没有区别都是一样的这并没有解决问题…为什么我的三个查询中有两个通过了,而另一个没有通过???完全相同的语法…与$checkwon相同的db属性特征…但仍然可以重新融合…就是这样!真不敢相信我的错误!从“=”到“=”…哈哈…笑总比哭好…接受了。谢谢,伙计