【发布时间】:2018-09-02 10:11:48
【问题描述】:
我想在 foreach 循环中传递多个变量,以将 $array_sma[] 中的值添加到我的数据库中。但到目前为止,我只能从 $short_smas 中插入值,而我还想从 $mid_smas 中插入值。我尝试过嵌套 foreach,但它使值相乘。
$period = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
$sma = array(6,9);
foreach ($sma as $range) {
$sum = array_sum(array_slice($period, 0, $range));
$result = array($range - 1 => $sum / $range);
for ($i = $range, $n = count($period); $i != $n; ++$i) {
$result[$i] = $result[$i - 1] + ($period[$i] - $period[$i - $range]) / $range;
}
$array_sma[] = $result;
}
list($short_smas,$mid_smas)=$array_sma;
foreach ($short_smas as $short_sma) {
$sql = "INSERT INTO sma (short_sma)
VALUES ('$short_sma') ";
if ($con->query($sql) === TRUE) {
echo "New record created successfully<br><br>";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
}
我的问题中的代码运行良好,即 $array_sma[] 的第一个子数组 ($short_smas) 的值被插入到我的 msql 数据库的 short_sma 列中。我遇到的问题是,当我尝试在我的数据库调用 mid_sma 的第二列中插入来自 $array_sma[] 的第二个子数组 $mid_smas(参见 list())时。
我认为这已接近我想要实现的目标,但数据库中仍然没有插入任何内容,来源:php+mysql: insert a php array into mysql
我没有任何 mysql 语法错误。
$array_sma[] = $result;
$sql = "INSERT INTO sma (short_sma, mid_sma) VALUES ";
foreach ($array_sma as $item) {
$sql .= "('".$item[0]."','".$item[1]."'),";
}
$sql = rtrim($sql,",");
【问题讨论】:
-
您正在寻找的结果是什么,可能有更简单的方法可以做到这一点,但我需要看看最终结果应该是什么样子(如果它有效的话)。
-
@Seb 你的最后一条评论属于问题:我已经复制粘贴到正文中