0
我需要在foreach循環中傳遞兩個或多個帶有公共索引鍵的輸入,以一次更新多個mysql行。如何使用foreach循環中的通用索引鍵傳遞多個值?
前端:
<table>
<thead>
<tr>
<th>ID</th>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<form method="post" action="process.php">
<?php
$stmt = $mysqli->prepare("SELECT id,column1,column2 FROM table");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id,$column1,$column2);
while ($stmt->fetch()) {
?>
<tr>
<td><?php echo $id ?></td>
<!-- Here User will input values for the below two fields in all the rows -->
<td><input type="text" name="column1[<?php echo $id; ?>]"/></td>
<td><input type="text" name="column2[<?php echo $id; ?>]"/></td>
</tr>
<?php } ?>
<input type="submit" name="submit" value="Update all">
</form>
</tbody>
</table>
後端:
<?php
if(isset($_POST['submit'])){
foreach($_POST['column1'],$_POST['column2'] as $key=>$value,$value1){ //column1 and column2 have common $id in each row
$stmt = $mysqli->prepare("UPDATE table SET column1 = ?, column2 = ? WHERE id = ?");
$stmt->bind_param('ssi',$value,$value1,$key);
$stmt->execute();
}
if ($stmt->execute()) {
echo "Done!";
exit();
}
}
?>
在這裏,索引關鍵字(ID)是在每行中 「列1」 和 「列2」 之間共用。所有行都有唯一的ID。
我需要在foreach循環中將「column1」和「column2」的值與公共索引鍵一起傳遞。這樣我就可以在單個查詢中的所有行中更新數據庫表列「column1」和「column2」。
所有的幫助將不勝感激。
你應該在循環之前做'prepare'和'bind_param',而不是每次。 – Barmar
@Barmar Ok注意!謝謝 –