gpt4 book ai didi

php - 遍历数据库并使用 foreach 循环更新字段

转载 作者:行者123 更新时间:2023-11-30 22:38:13 25 4
gpt4 key购买 nike

我正在尝试对表中的小数进行四舍五入,并使用新的四舍五入值更新同一个表中的另一个字段,但我似乎无法破解它。

舍入脚本完美运行,但我无法尝试运行舍入脚本并相应地更新数据库。

该表包含超过 10,000 个条目,因此我只请求特定给定日期的数据,一次缩小到大约 1,200 个条目...

这是我的 foreach 循环(它自己运行良好),但这不起作用:

<?php
include("XXXX");
$cxn = mysqli_connect($host,$user,$password,$dbname)
or die ("Couldn't connect to server.");
$query = "SELECT `sub_hrs`, `id` FROM `attend` WHERE `date` = '$date'";
$result = mysqli_query($cxn,$query)
or die ("Couldn't execute query.");

while($row = mysqli_fetch_assoc($result))
{
extract($row);
$n = array($sub_hrs);
foreach($n as $i) {
$new[] = (fmod($i, 1) > 0.5
? sprintf("%2.f", (float) (int) $i + 0.5)
: sprintf("%2.f", (float) (int) $i)) . PHP_EOL;
$mysql_query("UPDATE `attend` SET `total_hrs` = $new WHERE `id` = $id");
}
}

最佳答案

你在下面的行中分配了一个数组 $new[]。

  $new[] = (fmod($i, 1) > 0.5 
? sprintf("%2.f", (float) (int) $i + 0.5)
: sprintf("%2.f", (float) (int) $i)) . PHP_EOL;

但是在查询中,您只传递了 $new 变量,这将不起作用,因为您不会在 $new 变量中获得任何值。

    $mysql_query("UPDATE `attend` SET `total_hrs` = $new WHERE `id` = $id");

关于php - 遍历数据库并使用 foreach 循环更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31810170/

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