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 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看