根据通过复选框获得的表格将数据存储在 SQL 中?

Store data in SQL based on tables obtained via checkboxes?

我有以下表格:

<!DOCTYPE html>
<html>
<head>
<title>Update Notifications</title> 
</head>
<body>
<form enctype="multipart/form-data" action="update1.php" method="post">
<fieldset>
<legend>Enter Date and Notification, select the requisite categories</legend>       
    HOD<input type="checkbox" name="update[]" id="update" value="ihod"><br>
    CR<input type="checkbox" name="update[]" id="update" value="icr"><br>
    Non Teaching Staff<input type="checkbox" name="update[]" id="update" value="intstaff"><br>
    Teaching Staff<input type="checkbox" name="update[]" id="update" value="itstaff"><br>
    FE<input type="checkbox" name="update[]" id="update" value="ife"><br>
    SE IT<input type="checkbox" name="update[]" id="update" value="iseit"><br>
    SE EXTC<input type="checkbox" name="update[]" id="update" value="iseextc"><br>
    SE COMPS<input type="checkbox" name="update[]" id="update" value="isecomp"><br>
    TE IT<input type="checkbox" name="update[]" id="update" value="iteit"><br>
    TE EXTC<input type="checkbox" name="update[]" id="update" value="iteextc"><br>
    TE COMPS<input type="checkbox" name="update[]" id="update" value="itecomp"><br>
    BE IT<input type="checkbox" name="update[]" id="update" value="ibeit"><br>
    BE EXTC<input type="checkbox" name="update[]" id="update" value="ibeextc"><br>
    BE COMPS<input type="checkbox" name="update[]" id="update" value="ibecomp"><br>
    Notification: <input type="file" name="photo"><br> 
    Date: <input type="text" name="date"><br>       
    <input type="submit" name="Submit">
</fieldset>
</form>
</body>
</html>

我的 update1.php 包含以下代码:

<?php    
if (isset($_POST['table']) && isset($_POST['date']) && isset($_POST['pic'])       && isset($_POST['target'])){
$target = "notifications/";  //This is the directory where images will be saved 
$target = $target . basename( $_FILES['photo']['name']);  
$date=$_POST['date'];  
$pic=($_FILES['photo']['name']);   

mysql_connect("127.0.0.1", "root", "") or die(mysql_error()) ;  
mysql_select_db("login") or die(mysql_error()) ; 

foreach ($_POST[$name] as $update) {
    if($update == $value){
        $table = $_POST[$name]; 
        mysql_query("INSERT INTO `$table` VALUES ('$date', '$pic')") ;
        if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) {   
            echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";  
        }  
        else {   
            echo "Sorry, there was a problem uploading your file.";  }  
        }
    }
}

我想做的是将数据存储到表中(这些表已经在 "login" 数据库中创建,名称与复选框值相对应)。勾选复选框后,我希望程序使用必要的值(即日期和文件名)自动更新相应的表。我目前对 foreach() 语法及其实际工作方式感到困惑。另外,内爆可以用于此目的吗?

PS: 是否可以使用表单中的标签接受值并使用以下方法将其存储到数据库中?

看起来你在 foreach 中使用了 $_POST[$name] 而你应该使用 $update 见下文

if( isset( $_POST['update'] && !empty( $_POST['update'] ) ) {
    foreach( $_POST['update'] as $update ) {
        if( $update == $value ) {
            $table = $update;
            mysql_query( INSERT INTO '$table' VALUES( '$date', '$pic' );
        }
    }
}

另请查看 mysqli or PDO as mysql 函数从 PHP 5.5.0

开始贬值

我还看到您没有在 html 中的任何地方发布 $_POST['table']$_POST['pic'],所以您可能还需要看看这个。