如何使用复选框(PHP)从动态表中选择一行,并插入这些行以发送邮件功能

时间:2017-07-11 16:04:36

标签: php mysql sql

您好我有一个页面显示我表格的所有内容。沿着表格的每一行,我还有一个包含复选框的列。当用户通过勾选复选框并按下提交按钮选择一行或多行时,我希望这些行只显示在下一页的表格中(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>

请有人帮忙

1 个答案:

答案 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>