簡體   English   中英

如何在表的同一列的多行中從單一格式插入相同名稱的多個數據

[英]How to insert multiple data of same name from single form in multiple row of same column of table

我有

<form action="entry.php" method="post" >
<table>
<tr>
    <td>
        <input type="text" name="searchid[]" id="searchid" placeholder="Data 1" ><br />
        <input type="text" name="searchid[]" id="searchid" placeholder="Data 2" ><br />
        <input type="text" name="searchid[]" id="searchid" placeholder="Data 3" ><br />
        <input type="text" name="searchid[]" id="searchid" placeholder="Data 4" ><br />
    </td>
</tr>
<tr>
<td><input type="submit" name="submit" id="submit" value="submit" /></td>
</tr>

</table>    
</form>

和entry.php代碼,

<?php
include "db.php";

if (isset($_POST["submit"]))

$data1 = mysql_real_escape_string($_POST['searchid']);

$query1 = "INSERT INTO php_test (name) VALUES ('$data1')";
$query = mysql_query($query1,$connection);

if($query){
    header ("location: index.php");
    }
else{
    echo "Something Wrong";
    }

?>

此代碼適用於單個輸入數據,但是,我想在同一列的單獨字段中輸入四個數據,當我提交該代碼時,它將數據插入單獨的行中,字段名稱相同且

$_POST['searchid']是一個數組,而不是一個字符串。 您需要遍歷它們:

if (isset($_POST["submit"]))
    foreach ($_POST['searchid'] as $searchid) {
        $data1 = mysql_real_escape_string($searchid);
        mysql_query("INSERT INTO php_test (name) VALUES ('$data1')") or die(mysql_error());
    }
}
header("location: index.php");

此外,擺脫HTML中的重復id="searchid"屬性。 ID必須是唯一的。 您可能根本不需要這些元素來擁有ID。

如果您有多列,可以這樣做:

if (isset($_POST["submit"]))
    foreach ($_POST['searchid'] as $index => $searchid) {
        $data1 = mysql_real_escape_string($searchid);
        $data2 = mysql_real_escape_string($_POST['searchid2'][$index]);
        mysql_query("INSERT INTO php_test (name, name2) VALUES ('$data1', '$data2')") or die(mysql_error());
    }
}

當你在數組中獲得價值時。 所以你應該把你的insert語句放在循環中。 可能是這樣的: -

如建議的那樣,您不能通過數組使用mysql_real_escape_string 因此,您應該從循環頂部和每個值的mysql_real_escape_string刪除。

$data1 = $_POST['searchid'];
foreach($data1 as $postValues) {
  $name = mysql_real_escape_string($postValues);
  $query1 = "INSERT INTO php_test (name) VALUES ('$name')";
  $query = mysql_query($query1,$connection);
}

請嘗試以下代碼:

<?php
   include "db.php";

   if (isset($_POST["submit"]))

   foreach($_POST['searchid'] as $id){          
       $searchid= mysql_real_escape_string($id);
       $query1 = "INSERT INTO php_test (name) VALUES ('$searchid')";
       $query = mysql_query($query1,$connection);
   }
   if($query){
     header ("location: index.php");
   }
   else{
     echo "Something Wrong";
   }

?>

嘗試這個:

<?php
include "db.php";

if (isset($_POST["submit"]))


foreach($_POST["submit"] as $searchval) {
  $query1 = "INSERT INTO php_test (name) VALUES ('$searchval')";
  $query = mysql_query($query1,$connection);
}

if($query){
  header ("location: index.php");
}
else{
  echo "Something Wrong";
}

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM