PHP中post调用后的多次插入

PHP中post调用后的多次插入,php,mysql,http-post,Php,Mysql,Http Post,我需要将post调用中的相同数据更新到MYSQL DB中。 这是表格代码: <form action="salva_debiti.php" method="post"> '; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection fa

我需要将post调用中的相同数据更新到MYSQL DB中。 这是表格代码:

<form action="salva_debiti.php" method="post">


'; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM rimanenti_mese WHERE Mese = $mese AND Anno = $anno ORDER BY cognome ASC"; $result = $conn->query($sql); if ($result->num_rows > 0) { echo '
<table id="ricambi" style="width: 100%;" border="1">
    <tr>
        <td id="titolotd">Nome</td>
        <td id="titolotd">Cognome</td>
        <td id="titolotd">Da incassare pezzi</td>
        <td id="titolotd">Da incassare benzina</td>
        <td id="titolotd">Residuo '.$mese_scritto.' '.$anno_pr_div.'</td>
    </tr>'; while($row = $result->fetch_assoc()) { echo '

    <tr>

        <td>
            <input type="" name="nome[]" value="'.$nome.'">
        </td>
        <td>
            <input type="" name="cognome[]" value="'.$cognome.'">
        </td>
        <td>
            <input type="" name="pezzi[]" value="'.$pezzi.'">
        </td>
        <td>
            <input type="" name="benzina[]" value="'.$benzina.'">
        </td>
        <td>
            <input type="" name="rimanenti[]" value="'.$rimanenti.'" </td>
    </tr>
    ' ; } echo '
    <input type="submit" value="Submit">'; echo '</form>';

'; // 创建连接$conn=newmysqli($servername、$username、$password、$dbname);//如果($conn->connect_error){die($conn->connect_error)}$sql=“SELECT*FROM rimanenti_mese,其中mese=$mese和Anno=$Anno ORDER BY cognome ASC”,请检查连接$结果=$conn->query($sql);如果($result->num_rows>0){echo'
诺姆
同源的
英加萨雷佩齐酒店
本齐纳大酒店
住宅:$mese_scritto.$anno_pr_div
“;而($row=$result->fetch_assoc()){echo”
将
$conn->query($sql)
移动到
foreach
循环中

foreach($_POST['nome'] as $nome) {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];
    $sql = ".....";
    if ($conn - > query($sql) === TRUE) {

    } else {

    }
}
因为现在您只执行一个查询,并且在
foreach
循环结束后,
$sql
包含对最后一项的查询

更新: word
Array
是数组值的字符串表示形式。 当您执行
$nome=$\u POST['nome']
时,您的
$\u POST['nome']
是数组,因此将数组添加到字符串会导致word
数组
。 因此,您应该在每次迭代中获取数组的每一项,例如:

$i = 0;
foreach ($_POST['nome'] as $nome) {
    $nome = $_POST['nome'][$i];
    $cognome = $_POST['cognome'][$i];
    $rimanenti_ins = $_POST['rimanenti'][$i];

    // sql
    // run query

    $i++;
}
$conn->query($sql)
移动到
foreach
循环中

foreach($_POST['nome'] as $nome) {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];
    $sql = ".....";
    if ($conn - > query($sql) === TRUE) {

    } else {

    }
}
因为现在您只执行一个查询,并且在
foreach
循环结束后,
$sql
包含对最后一项的查询

更新: word
Array
是数组值的字符串表示形式。 当您执行
$nome=$\u POST['nome']
时,您的
$\u POST['nome']
是数组,因此将数组添加到字符串会导致word
数组
。 因此,您应该在每次迭代中获取数组的每一项,例如:

$i = 0;
foreach ($_POST['nome'] as $nome) {
    $nome = $_POST['nome'][$i];
    $cognome = $_POST['cognome'][$i];
    $rimanenti_ins = $_POST['rimanenti'][$i];

    // sql
    // run query

    $i++;
}
$conn->query($sql)
移动到
foreach
循环中

foreach($_POST['nome'] as $nome) {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];
    $sql = ".....";
    if ($conn - > query($sql) === TRUE) {

    } else {

    }
}
因为现在您只执行一个查询,并且在
foreach
循环结束后,
$sql
包含对最后一项的查询

更新: word
Array
是数组值的字符串表示形式。 当您执行
$nome=$\u POST['nome']
时,您的
$\u POST['nome']
是数组,因此将数组添加到字符串会导致word
数组
。 因此,您应该在每次迭代中获取数组的每一项,例如:

$i = 0;
foreach ($_POST['nome'] as $nome) {
    $nome = $_POST['nome'][$i];
    $cognome = $_POST['cognome'][$i];
    $rimanenti_ins = $_POST['rimanenti'][$i];

    // sql
    // run query

    $i++;
}
$conn->query($sql)
移动到
foreach
循环中

foreach($_POST['nome'] as $nome) {
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];
    $sql = ".....";
    if ($conn - > query($sql) === TRUE) {

    } else {

    }
}
因为现在您只执行一个查询,并且在
foreach
循环结束后,
$sql
包含对最后一项的查询

更新: word
Array
是数组值的字符串表示形式。 当您执行
$nome=$\u POST['nome']
时,您的
$\u POST['nome']
是数组,因此将数组添加到字符串会导致word
数组
。 因此,您应该在每次迭代中获取数组的每一项,例如:

$i = 0;
foreach ($_POST['nome'] as $nome) {
    $nome = $_POST['nome'][$i];
    $cognome = $_POST['cognome'][$i];
    $rimanenti_ins = $_POST['rimanenti'][$i];

    // sql
    // run query

    $i++;
}

foreach完成后,您正在调用
$conn->query($sql)
,这意味着在
$sql
中只存储foreach循环中的最后一个值

试试这个:

// Create connection
$conn = new mysqli( $servername, $username, $password, $dbname );
// Check connection
if ( $conn->connect_error) {
    die("Connection failed: ".$conn -> connect_error);
}

foreach ( $_POST['nome'] as $nome ) {

    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];


//$sql = "UPDATE rimanenti_mese SET Rimanenti='$rimanenti_ins' WHERE Nome='$nome' AND Cognome = '$cognome'";

    $sql = "INSERT INTO rimanenti_mese (Nome, Cognome, Mese, Anno, Benzina, Pezzi, Rimanenti)
VALUES('$nome', '$cognome', '09', '2015', 'xxxx', 'fdfdfd', '$rimanenti_ins')
";

    //put your ->query into the foreach loop
    if ($conn -> query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: ".$sql.
        "<br>".$conn -> error;
    }
}

$conn -> close();
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
foreach($_POST['nome']作为$nome){
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$rimanenti_ins=$u POST['rimanenti'];
//$sql=“UPDATE rimanenti_mese SET rimanenti='$rimanenti_ins',其中Nome='$Nome'和Cognome='$Cognome';
$sql=“插入rimanenti_mese(Nome、Cognome、mese、Anno、Benzina、Pezzi、rimanenti)
值(“$nome”、“$cognome”、“09”、“2015”、“xxxx”、“fdfdfd”和“$rimanenti_ins”)
";
//将->查询放入foreach循环
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“错误:”.$sql。
“
”$conn->错误; } } $conn->close();
您在foreach完成后调用
$conn->query($sql)
,这意味着在
$sql
中只存储foreach循环中的最后一个值

试试这个:

// Create connection
$conn = new mysqli( $servername, $username, $password, $dbname );
// Check connection
if ( $conn->connect_error) {
    die("Connection failed: ".$conn -> connect_error);
}

foreach ( $_POST['nome'] as $nome ) {

    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];


//$sql = "UPDATE rimanenti_mese SET Rimanenti='$rimanenti_ins' WHERE Nome='$nome' AND Cognome = '$cognome'";

    $sql = "INSERT INTO rimanenti_mese (Nome, Cognome, Mese, Anno, Benzina, Pezzi, Rimanenti)
VALUES('$nome', '$cognome', '09', '2015', 'xxxx', 'fdfdfd', '$rimanenti_ins')
";

    //put your ->query into the foreach loop
    if ($conn -> query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: ".$sql.
        "<br>".$conn -> error;
    }
}

$conn -> close();
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
foreach($_POST['nome']作为$nome){
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$rimanenti_ins=$u POST['rimanenti'];
//$sql=“UPDATE rimanenti_mese SET rimanenti='$rimanenti_ins',其中Nome='$Nome'和Cognome='$Cognome';
$sql=“插入rimanenti_mese(Nome、Cognome、mese、Anno、Benzina、Pezzi、rimanenti)
值(“$nome”、“$cognome”、“09”、“2015”、“xxxx”、“fdfdfd”和“$rimanenti_ins”)
";
//将->查询放入foreach循环
if($conn->query($sql)==TRUE){
echo“新记录创建成功”;
}否则{
echo“错误:”.$sql。
“
”$conn->错误; } } $conn->close();
您在foreach完成后调用
$conn->query($sql)
,这意味着在
$sql
中只存储foreach循环中的最后一个值

试试这个:

// Create connection
$conn = new mysqli( $servername, $username, $password, $dbname );
// Check connection
if ( $conn->connect_error) {
    die("Connection failed: ".$conn -> connect_error);
}

foreach ( $_POST['nome'] as $nome ) {

    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $rimanenti_ins = $_POST['rimanenti'];


//$sql = "UPDATE rimanenti_mese SET Rimanenti='$rimanenti_ins' WHERE Nome='$nome' AND Cognome = '$cognome'";

    $sql = "INSERT INTO rimanenti_mese (Nome, Cognome, Mese, Anno, Benzina, Pezzi, Rimanenti)
VALUES('$nome', '$cognome', '09', '2015', 'xxxx', 'fdfdfd', '$rimanenti_ins')
";

    //put your ->query into the foreach loop
    if ($conn -> query($sql) === TRUE) {
        echo "New record created successfully";
    } else {
        echo "Error: ".$sql.
        "<br>".$conn -> error;
    }
}

$conn -> close();
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
foreach($_POST['nome']作为$nome){
$nome=$_POST['nome'];
$cognome=$_POST['cognome'];
$rimanenti_ins=$u POST['rimanenti'];
//$sql=“UPDATE rimanenti_mese SET rimanenti='$rimanenti_ins',其中Nome='$Nome'和Cognome='$Cognome';
$sql=“插入rimanenti_mese(Nome、Cognome、mese、Anno、Benzina、Pezzi、rimanenti)
值(“$nome”、“$cognome”、“09”、“2015”、“xxxx”、“fdfdfd”和“$rimanenti_ins”)
";
//放