Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
MYSQL+PHP可变地选择值_Php_Mysql_Variables - Fatal编程技术网

MYSQL+PHP可变地选择值

MYSQL+PHP可变地选择值,php,mysql,variables,Php,Mysql,Variables,我试图使用一个函数从数据库返回一个简单的值,虽然这通常很容易,但我遇到了一些困难。我尝试了几种不同的混合物,但没有成功,所以我决定求助于这个社区 其概念是,数据库结构具有具有分配权限的页面类型的列组 此示例的当前列:rank/modreports/plreports 数据示例:admin/1/1 function CheckPermission($module){ $GetPerms = mysql_query("SELECT * FROM `permissions` WHERE `ra

我试图使用一个函数从数据库返回一个简单的值,虽然这通常很容易,但我遇到了一些困难。我尝试了几种不同的混合物,但没有成功,所以我决定求助于这个社区

其概念是,数据库结构具有具有分配权限的页面类型的列组

此示例的当前列:rank/modreports/plreports

数据示例:admin/1/1

function CheckPermission($module){
    $GetPerms = mysql_query("SELECT * FROM `permissions` WHERE `rank` = '".$MyDetails['group']."' LIMIT 1");
    $MyPerm = mysql_fetch_array($GetPerms);
        if($MyPerm[$module] != 1){
            echo 'DEBUG: '.$MyPerm[$module];
            //redirect("index.php?resp=perms");
            die();
        }
}
用法示例:

在这个阶段,上面的用法应该返回DEBUG:1,或者根本不显示任何内容(最好是第二个),而是显示DEBUG:$MyPerm['modreports']将返回正确的值,因此我假设它是变量中的变量,我过去只在$u POST[]中使用过该变量

谢谢你的帮助,我希望我提供了足够的信息来获得帮助

响应协助,这是已更正的代码

function CheckPermission($module,$group){
    $GetPerms = mysql_query("SELECT * FROM `permissions` WHERE `rank` = '".$group."' LIMIT 1");
    $MyPerm = mysql_fetch_array($GetPerms);
        if($MyPerm[$module] != 1){
            redirect("index.php?resp=perms");
            die();
        }
}

我认为,在你的情况下有一个错误:

而不是

if($MyPerm[$module] != 1){
应该是

if($MyPerm[$module] == 1){

您的函数不知道$MyDetails或$MyPerm。它只知道您在使用$module时传递给它的变量,或者您声明为全局变量的变量,不推荐使用。你提到在过去使用$\u POST,这是一个超全局的。这些是特殊情况,可用于所有函数,无需进一步定义


推荐阅读:

将此表作为示例数据:

rank | modreports | plreports
------------------------------
admin|     1      |     1

$MyPerm[$module]!=1将导致False,因为“modreports”的值为1。因此,“echo”调试:“.$MyPerm[$module];”这一行永远不会被执行

我改写了我那明显糟糕的措辞,完全是我的错。问题是它返回的是空白,而不是实际的数据库值。您需要在这段代码中添加一些mysql查询操作的基本错误句柄。这会立即说明你的问题。我还强烈建议您将查询写入一个变量,然后var_转储该变量。你的问题会再次变得明显。最后,如果您在所有级别上都启用了错误报告,您将在此处收到一个通知,该通知也会指出问题所在。总之,您最大的问题是,您需要真正专注于学习如何处理调试代码、处理边缘/错误情况,并在开发时始终关注错误消息。@MikeBrant谢谢您,在其他情况下我通常会这样做,这就是上次出现此问题时我自行解决的原因。这一次我完全忽略了。这很有道理。我在过去遇到过这个问题,通常自己纠正。只需将组传递给函数,第一次就可以完美地工作。MyPerms和其中的变量也都能很好地工作非常感谢。
rank | modreports | plreports
------------------------------
admin|     1      |     1