【发布时间】:2012-02-25 12:18:12
【问题描述】:
这是我的代码的 sn-p。本质上,我有一个要插入到表名中的新数组,但在此之前,我会根据旧数据验证新的统计数据,确认它们是数字并插入新行。
我意识到我做了什么,mysql_query 在 foreach 循环内,它插入 5 行都是一样的。我希望它只插入 1 个新行。
如何在尝试插入新行之前将 mysql_query 置于循环之外,同时保留 foreach 循环提供的验证?
foreach ($statnumber as $element) {
if ($statnumber != $LastWeeksStats && is_numeric($element)) {
mysql_query("INSERT INTO tablename (idproducts, stat1, stat2, stat3, stat4, stat5, superstat1) VALUES('8', '$statnumber[0]', '$statnumber[1]', '$statnumber[2]', '$statnumber[3]', '$statnumber[4]', '$statnumber[5]')") or die(mysql_error());
} else {
echo "'{$element}' is NOT numeric or results same as last week", PHP_EOL;
}}
mysql_close();
【问题讨论】:
-
你听说过 break 关键字吗?
-
它会结束循环,所以把它放在你的查询之后(这样它就会完成一次然后结束)——但是这种情况意味着你在设计上有错误
-
是的,我只是在谷歌上搜索了一下,看起来它可以工作,但正如你所说的那样,这将是一个很好的工作。