[英]Inserting auto incremented fields into a SQL database
我有一些简单的PHP代码,它们将使用'car_init $ i'和'car_num $ i'的命名方案生成新的文本框。 $ i = 1,我用i ++递增它。 我遇到的问题是,虽然一个用户最多可以生成70个文本框,但是它可以是1到70之间的任何数字。因此,如果用户只需要46个文本框,则我可以在页面上有46个文本框作为示例。因此,我将使用car_num1,car_num2,car_init1,car_init2等作为表单名称。
Car_ID是我的自动递增主键,并且我有2列car_num和car_init。 是否可以做这样的事情:将INSERT插入dbo(car_init,car_num)VALUES(car_init $ i,car_num $ i),然后使用$ i = 1和i ++递增它,同时将所有值添加到新行中? Car_id = 1将在各自的列中包含car_num1和car_init1信息,Car_id = 2将包含car_num2和car_init2信息,依此类推。
编辑:所以这是我现在的代码:
$car_num = $_POST["car_num"];
foreach($_POST['car_init'] as $key => $car_init)
{
// your insert query
$sql = "INSERT INTO CustBill_cars (C_ID, car_init, car_num) VALUES ('1', '".$car_init."', '".$car_num[$key]."')";
}
每次我添加到数据库中时,只会输入最后输入的内容。 因此,如果我需要3辆汽车,那就是6个文本框,但是只有页面上的最后一个文本框才是输入的文本框。
编辑2:这就是我的文本框的生成方式。 所有文本框都使用“ car_init []”和“ car_num []”来实现您所说的方式。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$i = 1;
while ($i <= $_POST['carAmount'] AND $i <= 70) {
// Now print the text box to the screen
echo "<b>$i</b>. Car Initial: <input type=\"text\" class='element text small' name=\"car_init[]\" maxlength='4' id='car_init[]' /> ";
echo "Number: <input type=\"text\" class='element text small' name=\"car_num[]\" maxlength='6' id='car_num[]' /><br>";
$i++;
}
}
将您的html更改为如下所示:
<input name="car_init[]" />
<input name="car_init[]" />
<input name="car_init[]" />
<input name="car_init[]" />
<input name="car_init[]" />
然后在php中,您的变量将是一个数组!
$_POST['car_init'] // is an array!
遍历这些并执行多个INSERT
。
foreach ($_POST['car_init'] as $car_num => $car_init) {
// "INSERT INTO dbo (car_init, car_num) VALUES ('$car_init', $car_num)"
}
根据您的更新进行编辑 :
INSERT INTO CustBill_cars (C_ID, car_init, car_num) VALUES ('1', '".$car_init."', '".$car_num[$key]."')"
啊,我想我明白了。
这是个问题:
foreach($_POST['car_init'] as $key => $car_init)
{
// your insert query
$sql = "INSERT INTO CustBill_cars (C_ID, car_init, car_num) VALUES ('1', '".$car_init."', '".$car_num[$key]."')";
}
我假设您正在运行查询$sql
? 如果是这样,那只会运行最后一个包含$sql
值! 你需要:
foreach($_POST['car_init'] as $key => $car_init)
{
// your insert query
$sql = "INSERT INTO CustBill_cars (C_ID, car_init, car_num) VALUES ('1', '".$car_init."', '".$car_num[$key]."')";
// actually run the query!
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.