gpt4 book ai didi

php - 如何从按日期存储在数组中的表中获取所有用户?

转载 作者:行者123 更新时间:2023-11-29 07:02:56 26 4
gpt4 key购买 nike

所以我有这个函数,它从 MySql 表中获取所有用户并将它们存储在一个数组中:

public function graphVals() {
$sql = "SELECT user_username FROM users WHERE user_register_date > CURDATE() - 2592000";

if ($stmt = $this->connect->prepare($sql)) {
$stmt->execute();
$stmt->bind_result($username);
while ($row = $stmt->fetch()) {
$stmt->bind_result($username);
$data[] = $username;
}
$stmt->close();
foreach($data as $key) {

$length[] = sizeof($key);

}
print_r($data);
} else {
$error = true;
$message['error'] = true;
$message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE;
return json_encode($message);
}
}

之后,如您所见,我想返回一个包含用户名数组长度的数组。

但我的问题是,如您所见,我正在获取一个包含所有用户名的数组,每个用户名都在一个索引中,我真正想做的是获取在一个日期注册的所有用户并将它们存储在一个索引中,所有在前一个日期之后注册的用户,并存储在下一个索引中,等等。

我该怎么做?我可以调整这个功能来做到这一点吗?

最佳答案

这很容易做到:

public function graphVals() {
$sql = "SELECT user_username FROM users WHERE user_register_date > CURDATE() - 2592000 ORDER BY user_register_date ASC";

$data = array();
if ($stmt = $this->connect->prepare($sql)) {
$stmt->execute();
$stmt->bind_result($username);
$stmt->bind_result($date);
while ($row = $stmt->fetch()) {
$stmt->bind_result($username);
if (!isset($data[$date])) {
// when the date is the first time in the array. Add that date as index for the array
$data[$date] = array();
}
$data[$date][] = $username;
}
$stmt->close();
foreach($data as $key) {

$length[] = sizeof($key);

}
print_r($data);
} else {
$error = true;
$message['error'] = true;
$message['message'] = CANNOT_PREPARE_DATABASE_CONNECTION_MESSAGE;
return json_encode($message);
}
}

希望这有帮助:)

关于php - 如何从按日期存储在数组中的表中获取所有用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9060300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com