我試圖做一個使用數組的表單,所以一旦它被提交和處理多行插入到我的數據庫。我的主程序比下面的程序更復雜,但我無法正常工作,所以我決定創建一個小的簡單程序來更好地理解基本語法,然後將這些技術應用到主程序中。我已經使用折舊的MySQL工作,但將其轉換爲MySQLi會導致問題,我不知道是否可以獲得幫助。從使用MySQLi的HTML表單插入多行到數據庫
我的形式設置這樣
<html>
<title>multi row insert test form</title>
<body>
<table>
<form action="process2.php" method="post">
<tr>
<th>forename</th>
<th>surname</th>
<th>level</th>
</tr>
<tr>
<td><input type="text" name="fname[]"></td>
<td><input type="text" name="sname[]"></td>
<td>
<select name="level[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
</tr>
<tr>
<td><input type="text" name="fname[]"></td>
<td><input type="text" name="sname[]"></td>
<td>
<select name="level[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Submit"></td>
</tr>
</form>
</table>
</body>
</html>
和更新使用庫MySQLi數據庫中的PHP頁面如下
<?php
include 'dbconnect2.php';
$fname = $_POST['fname'];
$sname = $_POST['sname'];
$level = $_POST['level'];
if ($stmt = $mysqli->prepare("INSERT INTO people (fname, sname, level) values (?, ?, ?)")) {
$stmt->bind_param('ssi', $fname, $sname, $level);
for ($i=0; $i<2; $i++)
{
$fname[$i] = $fname;
$sname[$i] = $sname;
$level[$i] = $level;
$stmt->execute();
echo "Done";
}
$stmt->close();
}
?>
當我提交表單時,你提供的所有出現在mysql表的2行中的數組是Array Array 1 – Smush 2014-11-24 12:43:28
我想我必須輸入錯誤的東西,因爲它現在可以工作。謝謝 – Smush 2014-11-24 13:14:52