您好我有一个页面显示我表格的所有内容。沿着表格的每一行,我还有一个包含复选框的列。当用户通过勾选复选框并按下提交按钮选择一行或多行时,我希望这些行只显示在下一页的表格中(material.php)。我知道它基本上是每行选择的一个select语句。但我不知道如何处理这个问题。有人可以帮忙吗?感谢
<td><input type='checkbox' name='material[]' value='material[<?php echo $id;?>]' /></td>
这是我的material.php页面 -
<table>
<?php
foreach ($_POST['material'] as $item) {
$query = "SELECT * FROM model_material WHERE id = '$item'";
if (mysqli_query($db_con, $query)) {
$query_result = mysqli_query($db_con, $query);
while ($all_select_material = mysqli_fetch_assoc($query_result)) {
extract($all_select_material);
?>
<tr>
<td><?php echo $id; ?></td>
<td><?php echo $model_id; ?></td>
<td><?php echo $material_id; ?></td>
</tr>
<?php
}
}
}
?>
</table>
请有人帮忙
答案 0 :(得分:0)
尝试以下方面: 使用预准备语句进行安全性:
<table>
<?php
foreach ($_POST['material'] as $item) { // loop your post array
$query = "SELECT col1,col2,col3,col4 FROM model_material WHERE id =
?"; // prepare a query
$stmt = $db_con->prepare($query);
if ($stmt) {
$stmt->bind_param("i",$item); // bind the integer id ($item)
$stmt->execute(); // fire it
$stmt->bind_result($col1,$col2,$col3,$col4); // bind the selected rows to each variable
$stmt->store_result(); //incase of large results prevents memory error
while ($stmt->fetch()) { // loop your results like $result fetch assoc
echo "<td>".$col1."</td>"; // display data
echo "<td>".$col2."</td>";
echo "<td>".$col3."</td>";
}
$stmt->close(); // close statement
}
}
$db_con->close(); // close database
?>
</table>