[英]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.