向数组中的所有元素添加值(php)

向数组中的所有元素添加值(php),php,arrays,elements,Php,Arrays,Elements,我有一个从数据库获取数组的查询 $result = mysqli_query($con,"SELECT `Time_D` from `Schedule` where `Stop` = 1 "); while ($row = mysqli_fetch_array($result) ) { echo $row['Time_D'] . "<br>"; } $result=mysqli\u query($con,“从'Schedule'中

我有一个从数据库获取数组的查询

$result = mysqli_query($con,"SELECT `Time_D` from `Schedule` where `Stop` = 1 ");

while ($row = mysqli_fetch_array($result) ) {                         
echo $row['Time_D'] . "<br>";
}
$result=mysqli\u query($con,“从'Schedule'中选择'Time\u D',其中'Stop`=1”);
而($row=mysqli_fetch_数组($result)){
echo$row['Time_D']。“
”; }
如果我没有弄错的话,这个数组($row)包含很多次

现在我想给数组中的所有元素添加10分钟。
我该怎么做?

您需要这样更新

$row['Time_D'] = time() + 600;
或者只有10秒

$row['Time_D'] += 600;
然后将其推回到数据库

mysql_query('update table_name set Time_D = '{$row['Time_D']}' where id = '{$row['id']}'

您可以通过使用mysql查询本身来完成

您可以在
php
脚本中使用如下参数:

$minutes_to_add = 10;

$result = mysqli_query($con,"SELECT DATE_ADD(`Time_D`,INTERVAL ".$minutes_to_add." MINUTE) AS 'Time_D' FROM `Schedule` WHERE `Stop` = 1 ");

while ($row = mysqli_fetch_array($result) )
{                         
    echo $row['Time_D'] . "<br>";
}
$minutes\u to\u add=10;
$result=mysqli\u query($con,“选择日期添加(`Time\u D`,INTERVAL.$minutes\u to\u ADD.'MINUTE)作为`Schedule`中的`Time\u D',其中`Stop`=1”);
while($row=mysqli\u fetch\u数组($result))
{                         
echo$row['Time_D']。“
”; }
您只能在SQL中执行此操作:

"UPDATE `Schedule` SET `Time_D` VALUES = DATE_ADD(`Schedule`.`Time_D`,INTERVAL 10 MINUTE) where `Stop` = 1"

你可能弄错了<代码>$row不包含很多次。只要仍有可用记录,
$row
将作为数组分配查询结果的下一行。如果要一直更改,请将它们保存到新数组中。在while循环中(不要忘记声明
$rows
):

$rows
现在可以存储所有时间。然后(在while循环之后)可以迭代
$rows
并更改数据

$rows = array_map(function($time) {
    return $time + (60 * 10); // Given $time is a timestamp
}, $rows);
如果不想保存时间(即直接在while循环中输出时间),请保存
array\u map
的开销,并直接在while循环中执行:

echo $row['Time_D'] + 60*10;
根据您的具体情况,您可能希望为时间使用键值(即id到时间)存储—否则您将无法将它们引用回您正在使用的“时间表”


如果您只想更新数据库记录,请参阅Axel的答案。

好吧,毕竟是我自己解决的

$result = mysqli_query($con,"SELECT `Time_D` from `Schedule` where `Stop` = 1 ");

//get database result
while ($row = mysqli_fetch_array($result) ) {                         
$rows[] = $row['Time_D']; //store all the times in one array
}
print_r ($rows);

echo "<br>";
$time_difference=600;
$i=0;

while (($i) < (count($rows)) ) {
$rows[$i] = ( strtotime($rows[$i]) ) + ($time_difference); //with timestamps, because, well, php and times...
$rows[$i] = date('H:i:s', ($rows[$i]) ); // back from timestamp to time
$i = $i +1;
}
print_r($rows);
$result=mysqli\u query($con,“从'Schedule'中选择'Time\u D',其中'Stop`=1”);
//获取数据库结果
而($row=mysqli_fetch_数组($result)){
$rows[]=$row['Time_D'];//将所有时间存储在一个数组中
}
打印(行);
回声“
”; $time_差=600; $i=0; 而(($i)<(计数($rows))){ $rows[$i]=(strotime($rows[$i]))+($time_difference);//带时间戳,因为php和时间。。。 $rows[$i]=日期($rows[$i]);//从时间戳返回到时间戳 $i=$i+1; } 打印(行);
什么类型的“时间”?时间戳,int,…?为什么每个答案都是关于mysql
UPDATE
?我看不出这个问题?他想在数组中添加所有元素。这是一个很大的响应时间类型=时间。的确,我想把数组放回数据库中,即使它不在问题中:)。我应该问这个,我的错。我不想只是更新这些值,我希望它们在一个新的表/列/添加到下面的同一列中,这样我就可以通过一个新的查询来显示它们。我必须说代码看起来非常简单,但不幸的是,当我把它放在我的php文件中时,它没有输出任何东西。当我直接在phpmyadmin中尝试查询时,它会输出列'Time\u D',但作为值只输出'null',而不是时间。我做错了什么?我刚刚注意到phpmyadmin中有一个错误:“当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。”@PHPirate我猜“Time_D”不是“DATETIME”类型。也许只是输入“文本”?如果不是“DATETIME”,那么你必须解析你得到的任何文本,对时间进行适当的转换(strotime可能会有帮助),然后再加上10分钟,我已经猜出来了。“Time_D”不是“DATETIME”类型,而是“Time”类型。我觉得这没什么错吧?我宁愿将它存储为时间戳,但这样它更可读,所以我可以确定数据库中有什么。是的,strotime确实有帮助。这似乎是一个更新查询,但我不想更新值,我想在现有时间的基础上再增加10分钟,在数据库中创建一个新数组和一组新值,或者将现有值放在一边。你的第一段完全正确!非常感谢!我使用了print\u r($rows);现在它确实显示了数组中的所有时间。现在,当我在函数之后打印$rows时,我得到的结果是“数组([0]=>608[1]=>609[2]=>610[3]=>611”。也许它与时间戳有关?你在函数中使用$time,然后说给定的$time是一个时间戳。你能详细说明一下吗?说得清楚一点:我想把时间保存在一个数组中,我可以插入到一个表中(我想这是可能的,对吧)。我不想更新数据库记录,但要分别插入新记录。您能给我一个查询结果行的示例吗?时间的格式是什么?数据库中时间的类型是时间(不是时间戳)。您是指原始记录的工作查询的示例吗?打印($rows)的输出是“数组([0] => 08:00:00 [1] => 09:00:00 [2] => 10:00:00"
echo $row['Time_D'] + 60*10;
$result = mysqli_query($con,"SELECT `Time_D` from `Schedule` where `Stop` = 1 ");

//get database result
while ($row = mysqli_fetch_array($result) ) {                         
$rows[] = $row['Time_D']; //store all the times in one array
}
print_r ($rows);

echo "<br>";
$time_difference=600;
$i=0;

while (($i) < (count($rows)) ) {
$rows[$i] = ( strtotime($rows[$i]) ) + ($time_difference); //with timestamps, because, well, php and times...
$rows[$i] = date('H:i:s', ($rows[$i]) ); // back from timestamp to time
$i = $i +1;
}
print_r($rows);