Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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/68.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 按用户级别从MySql表中选择所有ID,并将每个级别的ID数存储在一个数组中?_Php_Mysql_Arrays - Fatal编程技术网

Php 按用户级别从MySql表中选择所有ID,并将每个级别的ID数存储在一个数组中?

Php 按用户级别从MySql表中选择所有ID,并将每个级别的ID数存储在一个数组中?,php,mysql,arrays,Php,Mysql,Arrays,我有以下功能: //Counts The Users In The Database Per Level And Stores The Results In An Array public function countUsers() { $users = array(); $length = array(); for( $i = 0; $i >= 2; $i++){ $sql = "SELECT user_id FROM users WHERE

我有以下功能:

//Counts The Users In The Database Per Level And Stores The Results In An Array
public function countUsers() {
    $users = array();
    $length = array();
    for( $i = 0; $i >= 2; $i++){
        $sql   = "SELECT user_id FROM users WHERE user_level = '$i'";
        if ($stmt = $this->connect->prepare($sql)) {
            $stmt->bind_result($id);
            $stmt->execute();
            while ($row = $stmt->fetch()) {
                $stmt->bind_result($id);
                $users[] = $id;
            }
            $stmt->close();
            $length[] = sizeof($users);
        } else {
            $error              = true;
            $message['error']   = true;
            $message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE;
            return json_encode($message);
        }
    }   
    return $length;
}
假设此函数在表中循环,并将每个级别的id存储在一个数组中,然后获取每个级别的每个数组的大小。我的意思是,我有10个用户用于级别0,23个用户用于级别1等等,我需要将这些信息存储在一个数组中


我的函数有什么问题?

您能让SQL为您做更多的工作吗

SELECT   user_level,COUNT(user_id) usercount
FROM     users 
GROUP BY user_level;

这将为您提供每个用户级别的所有计数。

您能让SQL为您做更多的工作吗

SELECT   user_level,COUNT(user_id) usercount
FROM     users 
GROUP BY user_level;
$users = array();
这将为您提供每个用户级别的所有计数

$users = array();
应该在for循环中。 但如果将sql查询更改为:

"SELECT COUNT(*) FROM users WHERE user_level = '$i'"
或者如果您使用GROUPBY子句会更好

应该在for循环中。 但如果将sql查询更改为:

"SELECT COUNT(*) FROM users WHERE user_level = '$i'"

或者,如果您使用GROUP BY子句($i=0;$i>=2;$i++){会更好。有趣的是,for循环将永远运行。实际上,它永远不会运行……不,for循环永远不会运行。是的,起初没有看到它被初始化为0:-pOh,是的,条件
$i>=2
应该是
$i
for($i=0;$i>=2;$i++){
有趣..首先,For循环将永远运行。事实上,它永远不会运行…不,For循环永远不会运行。是的,没有看到它一开始初始化为0:-pOh,是的,条件
$i>=2
应该是
$i OK,我如何将计数输出到php?好的,我如何将计数输出到php?Y是的,将
$users
变量放置在for中完成了该技巧。是的,将
$users
变量放置在for中完成了该技巧。