首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据复选框的状态删除数据库中的项目

问根据复选框的状态删除数据库中的项目
EN

Stack Overflow用户
提问于 2011-10-25 02:38:14
回答 4查看 812关注 0票数 0

我正在尝试从有复选框的HTML表单中获取输入。这些复选框是使用数据库中的student_ids创建的。如下所示:

代码语言:javascript
复制
 <td><input type="checkbox" name="{$row['STUDENT_ID']}" />

我想要做的是逐步检查学生表,并检查所有选中了复选框的条目。然后,我想从数据库中删除已通过复选框选中的条目。

代码语言:javascript
复制
  8    $query = "SELECT STUDENT_ID From Students";
  9 $result = mysql_query($query) or die(mysql_error());
 10 while($row=mysql_fetch_array($result)){
 11   $checkname=$row['STUDENT_ID'];
 12   foreach($_POST[$checkname] as $student_id =>val)
 13   {
 14   if($val == 'YES'
 15     {
 16       echo $_POST['STUDENT_ID'];
 17       $query = "DELETE FROM Students WHERE STUDENT_ID" . mysql_real_escape_string($STUDENT_ID);
 18     }
 19   echo $query;
 20   $result = mysql_query($query) or die(mysql_error());
 21   //echo $POST['STUDENT_ID'];
 22 }
 23 }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-25 03:02:04

创建复选框数组:

代码语言:javascript
复制
    <input type="checkbox" name="studentID[]" value="{$row['STUDENT_ID']}" />

来自PHP:

代码语言:javascript
复制
    $studentID = $_POST['studentID'];

    foreach($studentID as $ID){
        echo $ID.'<br />'."\n";
    }

编辑:不确定,但我认为这是正确的方式:

代码语言:javascript
复制
    $studentID = $_POST['studentID'];

    $i=0;
    foreach($studentID as $ID){
        $i++;
        echo $_POST['studentID'][$i].'<br />'."\n";
    }
票数 1
EN

Stack Overflow用户

发布于 2011-10-25 03:01:26

在您的表单中尝试以下内容:

代码语言:javascript
复制
<input type="checkbox" name="STUDENT_ID[<?php echo $row['STUDENT_ID'] ?>]" value="YES" />

下面是你的PHP循环:

代码语言:javascript
复制
foreach ($_POST['STUDENT_ID'] as $student_id => $val) {
    if ($val == 'YES') {
        $query = "DELETE FROM Students WHERE STUDENT_ID=" . mysql_real_escape_string($student_id);
        $result = mysql_query($query) or die(mysql_error());
    }
}
票数 0
EN

Stack Overflow用户

发布于 2011-10-25 03:04:22

执行此操作的更好方法是从已提交的复选框中获取学生ID,然后对其运行删除。

HTML

代码语言:javascript
复制
<input type="checkbox" name="students_to_delete[]" value="{$row['STUDENT_ID']}" />

PHP

代码语言:javascript
复制
$students_to_delete = $_POST['students_to_delete'];
if(is_array($students_to_delete) && count($students_to_delete) > 0) {
    $query = "DELETE FROM Students WHERE STUDENT_ID IN (" . implode(",", $students_to_delete) . ")";
    $result = mysql_query($query) or die(mysql_error());
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7880210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档