使用php和mysql进行多次插入
我正在创建多个插入页面,用户可以选择需要插入多少条记录使用php和mysql进行多次插入,php,mysql,Php,Mysql,我正在创建多个插入页面,用户可以选择需要插入多少条记录 <form name="" action="" method="post"> <p>Write Down How many rows are you trying to insert<input type="text" name="numb" placeholder=""/></p> <input type="submit" name="add"/><br> &l
<form name="" action="" method="post">
<p>Write Down How many rows are you trying to insert<input type="text" name="numb" placeholder=""/></p>
<input type="submit" name="add"/><br>
<?php
if(isset($_REQUEST['add'])){
$add=$_POST['numb'];
for($i=0; $i<$add; $i++) {
echo "<form method=\"post\" action=\"2.php\" >";
echo "Water Pump<input type=\"text\" name=\"dap\"/><br>
Tractor Hiring<input type=\"text\" name=\"tractor\"/><br><form>";
} echo "<input type=\"submit\" name=\"save\"/><br>";
}
?>
我将演示如何执行此操作,并尝试进行演练: 将字段名称更改为机器[][dap]和机器[][tractor]。 使用机器[]将创建一个数组,每个字段名在[]内 创建一个新数组,例如$sql,如下所示: $sql=数组 使用foreach循环通过每个$\u POST: foreach$_POST['machine']作为$v 在foreach中,您将把“构建”查询段分配给$sql: $sql[]=''.my_escape$v['dap'.','.my_escape$v['tractor'.'; 注意:my_escape是一个虚构的函数,用于像mysql_real_escape_string一样转义数据 运行查询并将其加入阵列: $connection->query'insert-into-machine-tractor\u-rending,water\u-pumpvalue'。内爆',',$sql 最终代码文件1: 写下要插入的行数 最终代码文件2: 注意:我避免触摸仅在第二个文件上更改的代码缩进,因为这很糟糕。你应该以适当的方式缩进每个文件! 还请注意,我在最终代码中使用了相同的虚构函数 对于第1页报告的问题,以下是更改: 表单没有动作。通过设置action=,可以轻松修复 只发送带有值的输入。没有价值。 注意:该值也将用作要显示的文本 你没有一个主要的结束 最终结果: 写下要插入的行数
您知道,如果在不需要显式比较的情况下对布尔条件进行测试,那么与true进行比较,对吗?尽量不要做像if$insert这样的事情=true==true不是您的问题,但非常重要:永远不要相信用户输入。请阅读此外观,为了您的利益,我希望这不是在公共互联网上。您需要确保任何和所有的用户参数都是安全的,或者您处于应用程序泄露的严重风险中$_POST数据从不直接进入查询。如果您使用PDO,请使用以避免这种混乱。谢谢大家的建议,但我不会进入第二页,在那里我可以处理表格。它在最终项目i will user bind_parmWhy您的表单不处理时的测试是因为您没有标记,您得到了2次,这与ismael miguel相同。表单字段命名语法将导致拖拉机数据和dap数据具有自动递增/不同的索引。换句话说,尽管打算保持数据成对,但它们不会在同一行上。若要解决此问题,请在两个字段的名称=\machine之后使用[$i]而不是[]。如果这是我的项目,我会通过命名tractor[]和dap[]字段来简化$\u POST数据结构,因为使用机器会增加不必要的数组深度。
if(isset($_REQUEST['save'])){
$insert=$conenction->query("insert into machinery (tractor_hiring,water_pump)VALUES('".$_POST['tractor']."','".$_POST['dap']."')");
if($insert!=true)
echo "nothing happens";
else
echo "good to go";
}