Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和mysql进行多次插入_Php_Mysql - Fatal编程技术网

使用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";
}