gpt4 book ai didi

php - 即使查询有效,mysqli_fetch_array 错误;以 NULL 值运行总导出

转载 作者:行者123 更新时间:2023-11-29 03:48:12 25 4
gpt4 key购买 nike

我有以下在查询数据库时有效的查询:

编辑 3: 根据 Joe Swindell 的建议,可能是查询中的 SET @runningTotal := 0 行。要解决的问题是找到一种方法将下面的复杂查询转换为 JSON 字符串,这也将保存 NumPosts 部分。 NumPosts 是一个运行总数,它取决于 SET 行;删除 set 行会删除 mysqli_fetch_array 错误,但会导致所有 NumPost 值都为 NULL。

编辑 2:我已经回应了下面的查询并粘贴回 MySQL 以确认它正在工作,而且它实际上是有效的。

SET @runningTotal := 0;
SELECT T.ForDate, (@runningTotal := @runningTotal + T.DayProgress) as NumPosts
FROM
(

SELECT DATE( completed_courses.complete_date ) AS ForDate, COUNT( * ) AS DayProgress
FROM users
INNER JOIN completed_courses ON users.user_id = completed_courses.user_id
INNER JOIN wg_courses ON wg_courses.c_id = completed_courses.c_id
INNER JOIN workgroup ON wg_courses.wg_id = workgroup.g_id
WHERE users.course_group LIKE '4h%' AND completed_courses.complete_date > 0

GROUP BY DATE(completed_courses.complete_date)
) T
ORDER BY T.ForDate

以上输出:

ForDate     NumPosts
2014-07-29 950
2014-07-30 3063
2014-07-31 3669
2014-08-01 4584
2014-08-02 5088
...

编辑:检查连接并确保一切匹配,这是输出:"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, object given"

PHP代码:

$data = array();
$i = 0;
while($row = mysqli_fetch_array($con, $result)) {

$i += 1;
array_push($data, array($i) + $row);
}

稍后,代码被编码成 JSON 以便在 Google Charts 中使用:

var data = <?php echo json_encode($data) ?>

此外,将查询结果导出为 SQL、CSV、Excel 文件等会导致所有 NumPosts 值为 NULL:

ForDate     NumPosts
2014-07-29 NULL
2014-07-30 NULL
2014-07-31 NULL
2014-08-01 NULL
2014-08-02 NULL
...

值未正确保存或获取的原因可能是什么?

最佳答案

http://php.net/manual/en/mysqli-result.fetch-array.php

您错误地使用了 mysqli_fetch_array()

如果这是您尝试进行查询的地方,则需要进行大量重组。如果您已经进行了查询并将其存储在 $result 中:

你会用

mysqli_fetch_array($result, MYSQLI_ASSOC);

建立连接和查询之后

您的整个代码可能如下所示:

$query = "SELECT Whatever whatever from something;";
$result = mysqli_query($con, $query);

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

$i += 1;
array_push($data, array($i) + $row);
}

编辑:就目前而言,您有多个查询。运行 SET @runningTotal := 0; 的单个查询然后将您的查询变量重置为查询的其余部分并运行它,然后您将获得结果。

关于php - 即使查询有效,mysqli_fetch_array 错误;以 NULL 值运行总导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27064845/

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