gpt4 book ai didi

PHP array_sum 不工作

转载 作者:行者123 更新时间:2023-11-30 23:59:12 27 4
gpt4 key购买 nike

我正在尝试查询一个 SQL 表,然后使用 array_sum 将一列(它是一个“tinyint(1)”)中的所有值相加并打印出来。 (目前只有两行)。

当两行在该列中都有一个“1”时,它会给出 2,即正确答案。当它们都为“0”时,它给出 0,再次更正。但是当一个是“1”,一个是“0”时,它给出 2,而不是 1。

这是我的代码


<code>$con = mysql_connect("XXX","XXX","XXX");

if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("XXX_test", $con);

$day = $_GET["day"];

$query = mysql_query("SELECT $day FROM sites");

if (!$query)
{
die('Could not query: ' . mysql_error());
}

$rows = mysql_fetch_array($query);

echo array_sum($rows);

mysql_close($con);
</code>


?>

感谢您的帮助。

--更新--
我自己解决了这个问题。

有了这个,如果你想知道: $query = mysql_query("SELECT name, SUM($day) AS Alerts FROM sites");

while($row = mysql_fetch_array($query))
{
echo $row['Alerts'];
echo "<br />";
}

最佳答案

这实际上从不 正常工作。

$rows = mysql_fetch_array($query);

该行只获取第一行。永远不会检索到第二行。

它使用 array_sum 给出 2 的原因是 mysql_fetch_array 以两种不同的格式获取结果,键名和数字。所以你会得到这样的东西:

array(
0 => '1',
'Tuesday' => '1'
)

显然这将始终是 20

您几乎肯定应该在数据库服务器上进行计数:

SELECT COUNT(*) FROM sites WHERE $day=1

但是请注意,您当前最大的问题是巨大的 SQL 注入(inject)漏洞。清理您的输入。

关于PHP array_sum 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563546/

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