SQL查询和PHP检查用户是否是管理员

SQL查询和PHP检查用户是否是管理员,php,mysql,Php,Mysql,基本上,我在向MySQL服务器发送请求、接收返回的数据以及检查用户是管理员还是用户时遇到了一些问题 管理员=1 用户=0 很抱歉,这可能没有太多的信息需要,我目前是新的堆栈溢出 $checkAdminQuery = "SELECT * FROM `users` WHERE `admin`"; !!!! 什么地方?您需要指定job='admin'或name='admin'的位置 您需要指定要在其中添加管理字符串的列名如果要在数据库中检查某人,则需要具有类似用户id的内容。例如,如果会话中存储

基本上,我在向MySQL服务器发送请求、接收返回的数据以及检查用户是管理员还是用户时遇到了一些问题

管理员=1 用户=0


很抱歉,这可能没有太多的信息需要,我目前是新的堆栈溢出

$checkAdminQuery = "SELECT * FROM `users` WHERE `admin`"; !!!!
什么地方?您需要指定job='admin'或name='admin'的位置
您需要指定要在其中添加管理字符串的列名

如果要在数据库中检查某人,则需要具有类似用户id的内容。例如,如果会话中存储了用户id

<?php
// 1. start session
session_start();
// 2. connect to db
$link = mysqli_connect('host', 'user', 'pass', 'database');
// 3. get user
$checkAdminQuery = mysqli_query($link, "SELECT * FROM `users` WHERE `id_user` = " . $_SESSION['id_user'] );
// 4. fetch from result
$result = mysqli_fetch_assoc($checkAdminQuery);

// 5. if column in database is called admin test it like this
if ($result['admin'] == 1) {
  echo '<h1>Is admin!</h1>';
}else {
  echo '<h1>Not working!</h1>'; 
}
?>

首先,您的SQL查询是错误的

SELECT * FROM `users` WHERE `admin`
它缺少WHERE子句的其余部分

SELECT * FROM `users` WHERE `admin` = 1
然后需要从查询结果中获取结果。你甚至没有运行这个查询

$resultSet = mysqli_query($checkAdminQuery)
然后,您需要从中提取值

while($row = mysqli_fetch_assoc($resultSet))
{
    //do stuff
}
这些是我看到的最初问题,如果需要,我将继续分析并找到更多

请参阅此处的文档

//获取所有管理员用户(假设数据库已连接)


SQL不完整。您需要说明
admin
应该等于什么。您的代码中还至少有一个错误。先解决这两个问题。如果没有看到任何错误,请指定将“admin”存储为值的数据库字段名。。。。!从“admin”=1的用户中选择*;
while($row = mysqli_fetch_assoc($resultSet))
{
    //do stuff
}
$rtn = array();
$checkAdminQuery = "SELECT * FROM `users` WHERE `admin`=1";
$result = mysqli_query($dbcon,$checkAdminQuery) or die(mysqli_error($dbconn));

while($row = mysqli_fetch_array($result)){
   $rtn[] = $row;
}