【发布时间】:2019-05-14 05:58:53
【问题描述】:
我从 post 获取数组以插入数据库。我从表单中的天数选项卡中获取名称。我正在制作一个循环插入,但无法获得它的总数。有些天数为空,有些天数不同。
尝试为他们添加隐藏输入,但未能成功。我想也许我可以计算总数组并使其成为循环限制。
我正在使用此代码将数组插入sql,但它只插入一个。从mon 开始计数是错误的,我知道,但我不知道如何获得所有数组的总循环限制:
$i = 0;
foreach($_POST['mon'] as $item){
$mon= DB::control($_POST['mon'][$i],'text');
$tue= DB::control($_POST['tue'][$i],'text');
$wed= DB::control($_POST['wed'][$i],'text');
$thu= DB::control($_POST['thu'][$i],'text');
$fri= DB::control($_POST['fri'][$i],'text');
$sat= DB::control($_POST['sat'][$i],'text');
$sun= DB::control($_POST['sun'][$i],'text');
$query = DB::insert("INSERT INTO work(mon,tue,wed,thu,fri,sat,sun) VALUES($mon,$tue,$wed,$thu,$fri,$sat,$sun)");
$i++;
}
编辑:尝试计算数组,我可以计算完整数组但也计算空数组。
$d1 = count($_POST['mon']);
$d2 = count($_POST['tue']);
$d3 = count($_POST['wed']);
$d4 = count($_POST['thu']);
$d5 = count($_POST['fri']);
$d6 = count($_POST['sat']);
$d7 = count($_POST['sun']);
$total = $d1+$d2+$d3+$d4+$d5+$d6+$d7;
编辑 Var_dump:
array(10) { ["city"]=> string(7) "Abcdef" ["que"]=> array(1) { [0]=> string(6) "que[]" } ["mon"]=> array(3) { [0]=> string(1) "1" [1]=> string(1) "2" [2]=> string(1) "3" } ["tue"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "2" } ["wed"]=> array(1) { [0]=> string(0) "" } ["thur"]=> array(1) { [0]=> string(0) "" } ["fri"]=> array(1) { [0]=> string(0) "" } ["sat"]=> array(1) { [0]=> string(0) "" } ["sun"]=> array(1) { [0]=> string(6) "trial" } ["psd"]=> string(19) "psdAddReport" }
更新: 非常感谢。我可以用你的方式计算数组,但我认为我的解决方案是错误的。我为要插入的循环添加了 while 代码。例如。数了4,插了4次。这是我的错。
html 表单中的 TABS
Tab_City | Mon | Tue | Wed | Thur | Fri | Sat | Sun
-----------------------------------------------------
abc | a | a | a | aaa | aa | | aaa
| a | a | a | aaa | aa | | aaa
| a | a | | aaa | aa | | aaa
| a | a | | aaa | aa | | aaa
| a | a | | aaa | aa | | aaa
| a | | | aaa | aa | | aaa
| a | | | | aa | | aaa
| a | | | | aa | | aaa
| a | | | | aa | |
| a | | | | | |
有 50 个数组,但有 10 行。我计算了 50 个阵列,但现在我认为获得最大天数对我有用。请说我是否错了或任何简单的方法。我想学习编码。 谢谢。
SQL
id |city | mon | tue | wed | thur | fri | sat | sun
-----|-----|-----|-----|------|-----|-----|------------
1 |abc | a | a | a | aaa | aa | | aaa
2 |abc | a | a | a | aaa | aa | | aaa
3 |abc | a | a | | aaa | aa | | aaa
4 |abc | a | a | | aaa | aa | | aaa
5 |abc | a | a | | aaa | aa | | aaa
6 |abc | a | | | aaa | aa | | aaa
7 |abc | a | | | | aa | | aaa
8 |abc | a | | | | aa | | aaa
9 |abc | a | | | | aa | |
10 |abc | a | | | | | |
【问题讨论】:
-
如果你不在循环中使用
$item- 为什么不使用简单的for循环呢?你到底要数什么?您能添加输入和期望输出的简单示例吗? -
我正在尝试添加来自表单天数的值。从网络上尝试不同的东西,$item 远离其中之一。表单选项卡是天。在每一天选项卡中,我都在输入工人姓名。我想做一个一周的表格。 $d1 = count($_POST['mon']); $d2 = count($_POST['tue']); $d3 = count($_POST['wed']); $d4 = count($_POST['thu']); $d5 = count($_POST['fri']); $d6 = count($_POST['sat']); $d7 = count($_POST['sun']); $总计 = $d1+$d2+$d3+$d4+$d5+$d6+$d7;