Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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 我的SQL函数是返回正确的结果还是只返回列中的第一个条目?_Php_Html_Sql - Fatal编程技术网

Php 我的SQL函数是返回正确的结果还是只返回列中的第一个条目?

Php 我的SQL函数是返回正确的结果还是只返回列中的第一个条目?,php,html,sql,Php,Html,Sql,我在一个网站上工作,我试图检查用户级别并显示结果。我使用的函数从数据库中选择user_lvl并返回结果(user_lvl是一个int)。然后,当用户登录时,我有一个等于此函数的变量。然后将用户的会话变量设置为该值。我遇到的问题是,当我为用户回显数据时,结果不正确。我很确定它选择的是数据库中的第一个条目,而不是当前登录的用户。我知道这可能是我缺少的一些简单的东西,但是我如何才能得到我想要的结果呢 代码如下: // here is the function to get the user level

我在一个网站上工作,我试图检查用户级别并显示结果。我使用的函数从数据库中选择user_lvl并返回结果(user_lvl是一个int)。然后,当用户登录时,我有一个等于此函数的变量。然后将用户的会话变量设置为该值。我遇到的问题是,当我为用户回显数据时,结果不正确。我很确定它选择的是数据库中的第一个条目,而不是当前登录的用户。我知道这可能是我缺少的一些简单的东西,但是我如何才能得到我想要的结果呢

代码如下:

// here is the function to get the user level from the databse 
function getUserLvl() {
    global $conn;

    $sql = "SELECT user_lvl FROM users";
    $Lvl = mysqli_query($conn, $sql);

    $getUserLvl = mysqli_fetch_assoc($Lvl);

    return $getUserLvl;
}
这是登录脚本,我添加了所有脚本,只是为了更容易理解,但涉及的主要部分将在顶部分开

$userLvl = getUserLvl();

session_start();
$_SESSION['userLvl'] = $userLvl;

<h3 class="ui center aligned header">User Level: <?php echo implode(',', $_SESSION['userLvl']) ?></h3>
$userLvl=getUserLvl();
会话_start();
$\会话['userLvl']=$userLvl;
用户级别:


您当前的SQL语句没有任何
where
条件来指定正确的用户。假设您有一列用户id(我们称之为
user\u id
),您应该将查询调整为如下所示:

$sql = "SELECT user_lvl FROM users WHERE user_id = " . $userID;

其中,
$userID
是当前用户的ID。

SQL语句中没有Where条件。当我向函数添加Where条件时,它会导致函数无法正确回显该值。只显示“用户级别:”而不是“用户级别:1”。@McFlurry在登录之前不能从函数调用userlvl并将userID传递给函数!因此,将函数更改为这个
函数getUserLvl($userID){global$conn;$sql=“SELECT User_lvl from users WHERE User_id=“$userID;
然后像这样调用sessions上面的函数
$userLvl=getUserLvl($row['userID']);
然后像这样传递session['userLvl']=$userLvl['userLvl']< /代码>非常感谢!你刚刚帮我解决了几个问题。D::很高兴听到我在哪里声明$USERID变量?函数内还是在它外面?正如@ DLK在评论中提到的,考虑将用户ID作为参数传递给<代码> GETUSELVLL()/<代码>或以任何你认为合适的方式:
$sql = "SELECT user_lvl FROM users WHERE user_id = " . $userID;