重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
建议楼主把SQL语句显示出来,自然就明白问题在哪里了,我试着简单说一下,假设你的USER数据表有三个字段(name、age、sex),_POST提交数据也是这三个字段的,假设POST的值分别是abc、18、男,那么帖子的PHP会执行下面的三个SQL语句:
成都创新互联专注于柞水网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供柞水营销型网站建设,柞水网站制作、柞水网页设计、柞水网站官网定制、小程序开发服务,打造柞水网络公司原创品牌,更为您提供柞水网站排名全网营销落地服务。
INSERT INTO USER(name) VALUES(abc)
INSERT INTO USER(age) VALUES(18)
INSERT INTO USER(sex) VALUES(男)
现在明白了吧,一、三两句会语法错误,英文没有在文本字段添加引号,第二句即使执行成功插入的记录只有年龄,姓名、性别为空,如果数据库有限制字段有效性,那么第二句插入也会失败,数据库需要的语句是:
INSERT INTO USER(name,age,sex) VALUES('abc',18,'男')
如果理解了,自然会下面这样写PHP语句:
$sql=END
INSERT INTO USER(name,age,sex)
VALUES('{$_POST['name']}',{$_POST['age']},'{$_POST['sex']}')
END;
利用PHP对数组赋值时下标变量会自动递增的特点,可以很方便用循环将数据存入一个数组。例如:$arr[] = 'a'; 这条语句会将字符a存入数组变量$arr中,如果$arr不存在则会新建一个;若已存在,则将$arr数组的下标变量递增1后存入字符。也就是说,如果已有$arr[0]='a', 那么执行 $arr[] = 'b'; 后,数组其实是进行了$arr[1] = 'b' 的操作。
1W条数据量也不是特别大,那就直接读取,然后在foreach入库就可以了
如果数据量非常大的时候,那就分段读取,然后入库~
考虑到php超时,那就网页端打开,第一部分执行完,刷新页面,开始执行第二部分,依次进行...
当然,直接在命令行下执行也可以~
把复选框的值作为参数提交,作为循环的次数
$s1 = $_POST['s1'];//获取样品数量
for($i = 1; $i=$s1; $i++){
$tmp = $_POST['smp'.$i]; //这里是对应循环中的文本框name属性
$sql = "insert into 表名(字段....) values('样品名',数量)";
mysql_query($sql,$conn);
}
这样写,能看明白么?