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

时间:2015-04-01 20:50:32

标签: php mysql checkbox

我有以下表格:

<!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.";  }  
        }
    }
}

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

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

1 个答案:

答案 0 :(得分:0)

当您使用$_POST[$name]时,看起来您在foreach中使用$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' );
        }
    }
}

请同时查看mysqliPDO,因为mysql函数自PHP 5.5.0起已弃用

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