dpz3471 2015-08-31 16:52
浏览 15
已采纳

单击提交无法更新用户信息

Everytime an user register in my website, they have a "free account". In my website there're 4 types of accounts:

Free - 2GB

Basic - 5GB

Ultra - 10GB

Plus - 25GB

Each one with an unique id. I have created this code. Depending of the submit you click, your user get one of those accounts (Basic Ultra or Plus).

    public static function ComprobarTarifa($user){
        $sql = "SELECT id_tipocuenta FROM canal WHERE id = '$user'";
        $resultado = self::Conexion($sql);
        $verificacion = false;

        if(isset($resultado)) {
            $fila = $resultado->fetch();
            if($fila !== false){
                $verificacion=true;
            }
        }
        return $verificacion;
    }

    public static function AmpliarCuenta($user, $tarifa){
        $sql = "UPDATE canal SET id_tipocuenta = '$tarifa' WHERE id = '$user'";
        $resultado = self::Conexion($sql);
        return $resultado;
    }

    public static function AmpliarCuentaErrores(){
        $error = "";
        $tarifa = 0;

        if(isset($_POST["tarifaBasic"])){
            $tarifa = 2;

            if(isset($_SESSION["usuario"])){
                if(self::ComprobarTarifa($_SESSION["usuario"]) != $tarifa){
                    DataBase::AmpliarCuenta($_SESSION["usuario"], $tarifa);
                    $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Ya estás usando esa tarifa...</div></div></div>";
                }
            } else {
                $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Debes iniciar sesión primero...</div></div></div>";
            }
        }

        if(isset($_POST["tarifaUltra"])){
            $tarifa = 3;

            if(isset($_SESSION["usuario"])){
                if(self::ComprobarTarifa($_SESSION["usuario"]) != $tarifa){
                    DataBase::AmpliarCuenta($_SESSION["usuario"], $tarifa);
                    $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Ya estás usando esa tarifa...</div></div></div>";
                }
            } else {
                $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Debes iniciar sesión primero...</div></div></div>";
            }
        }

        if(isset($_POST["tarifaPlus"])){
            $tarifa = 4;

            if(isset($_SESSION["usuario"])){
                if(self::ComprobarTarifa($_SESSION["usuario"]) != $tarifa){
                    DataBase::AmpliarCuenta($_SESSION["usuario"], $tarifa);
                    $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Ya estás usando esa tarifa...</div></div></div>";
                }
            } else {
                $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Debes iniciar sesión primero...</div></div></div>";
            }
        }
        return $error;
    }

The problem is that my database doesnt update... What could it be? Error divs dont appear...

  • 写回答

1条回答 默认 最新

  • doumeinuoye81969 2015-08-31 17:12
    关注

    You're printing the error message even if everything is OK. You forgot the else at all the instances here:

    if(self::ComprobarTarifa($_SESSION["usuario"]) != $tarifa){
        DataBase::AmpliarCuenta($_SESSION["usuario"], $tarifa);
        $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Ya estás usando esa tarifa...</div></div></div>";
    }
    

    That should actually be:

    if(self::ComprobarTarifa($_SESSION["usuario"]) != $tarifa){
        DataBase::AmpliarCuenta($_SESSION["usuario"], $tarifa);
    } else {
        $error = "<div id='error_alert'><div class='error_container'><i class='fa fa-times awesome error_close btn'></i><div class='error_text'>Ya estás usando esa tarifa...</div></div></div>";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!