询问多个保存数据表

时间:2016-01-03 08:40:49

标签: php mysql foreach

我想问一下,请帮忙

我尝试创建多个文件保存数据表

当我想在一个表中插入多个字段时,我遇到了问题。所有在一个表中 对于所有正确存储的数据的价格,但对于仅存储在第一个表中的数据类型,当我一次输入4个表时,除了表类型之外,所有存储的数据都只存储第一个输入,输入数据与第一个输入相同的2,3,4

结果输出如下:

enter image description here

我做的样本脚本

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

1 个答案:

答案 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++;
}