私が持っています
<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";
}
?>
このコードは単一の入力データで機能しますが、同じ列の別々のフィールドに4つのデータを入力したいのですが、送信すると、別々の行にデータが挿入されます。フィールド名は同じで、
$_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");
また、id="searchid"
HTML内の重複する属性を取り除きます。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());
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加