我想问一下,请帮忙
我尝试创建多个文件保存数据表
当我想在一个表中插入多个字段时,我遇到了问题。所有在一个表中 对于所有正确存储的数据的价格,但对于仅存储在第一个表中的数据类型,当我一次输入4个表时,除了表类型之外,所有存储的数据都只存储第一个输入,输入数据与第一个输入相同的2,3,4
结果输出如下:
我做的样本脚本
if($_POST['add']==""){
foreach ($_POST['price'] as $keyWarna){
mysql_query("insert into pricedata set id_data='$_POST[id_data]', price='$keyWarna', type='$_POST[type]'");
}
}
enter image description here 对于字段类型,他只保存表1中的正确数据,并且字段内容实际上与2,3,4的内容不匹配,第一个差分输入到表字段2,3,4
答案 0 :(得分:0)
假设$_POST['type']
数组与$_POST['price']
类似,可以用作:
foreach ($_POST['price'] as $key => $keyWarna)
{
mysql_query("INSERT INTO pricedata
(id_data, price, type) VALUES ('$_POST[id_data]', '$keyWarna','$_POST[type][$key]'");
}
使用$ key将有助于插入unqiue值。
旁注:我建议使用mysqli_ *或PDO而不是mysql_ *因为mysql_ *已被弃用且在PHP 7中不可用
使用mysqli_ *函数的代码:
<?php
// procedural style of mysqli
$host = "host";
$user = "user";
$password = "password";
$database = "db";
$link = mysqli_connect($host, $user, $password, $database);
if(!$link){
echo ('unable to connect to database');
}
else {
foreach ($_POST['price'] as $key => $keyWarna)
{
mysqli_query($link, "INSERT INTO pricedata
(id_data, price, type) VALUES ('$_POST[id_data]', '$keyWarna','$_POST[type][$key]'");
}
?>
更新2:
当您使用价格输入字段
时<input name='price[]' type='text' />
您必须使用类似于数组字段的类型字段来实现目标。
<input name='type[]' type='text' />
更新3(使用$ i进行身份识别):
$i = 0;
foreach ($_POST['price'] as $key => $keyWarna)
{
mysql_query("INSERT INTO pricedata
(id_data, price, type) VALUES ('$_POST[id_data]', '$keyWarna','$_POST[type][$i]'");
$i++;
}