从另一个表中插入数据,从文本框和复选框中插入数据以创建新记录

时间:2014-06-25 12:29:34

标签: php mysql checkbox insert textbox

我必须从表1中插入用户名,姓名,姓氏,roomnum和dormID的值。

我必须在表2中插入今天的当前日期(每天更改),评论(用户希望输入 - 这是一个文本框)和出勤(现在,缺席,迟到)(这些是复选框) 。

当尝试点击提交按钮时,唯一插入数据库的是我从table1拉到表2中的记录。

当我尝试合并以同时插入日期,延迟评论(文本框)和出勤(复选框)时,它不会存储任何记录。

这是插页:

$checkbox1 = $_POST['chk1'];
$latecomment=trim($_POST['latecomment']);
$d=strtotime("today");//todays date
$day=date("Y-m-d", $d);//date format


if($_POST["Submit"]=="Submit"){

    for ($i=0; $i < sizeof ($checkbox1); $i++){
        $query="Insert into dailyattendance (attendance) VALUES ('".$checkbox1[$i]."')";
        mysql_query($query);
        $daily=mysql_query("INSERT INTO dailyattendance(username, name, lastname, roomnum, dormID) SELECT user.username, user.name, user.lastname, user.roomnum, user.dormID FROM user WHERE user.role='Student'" ); 
        $otherinfo=mysql_query("INSERT INTO daily attendance set  date='".$day."', latecomment='".$latecomment."' WHERE dailyid=''");   
    }
}

1 个答案:

答案 0 :(得分:0)

  1. 您的表名中有一个空白(在您的代码中):

    插入每日出勤

  2. 您的INSERT语句中有一个WHERE子句,并且您正在使用SET的UPDATE语法:

    INSERT INTO每日出勤日期='“。$ day。”',latecomment ='“。$ latecomment。”'WHERE dailyid =''“);

  3. 问题:您的表格中是否有一个名为“出勤”的栏目?

  4. 如果要添加包含所有列的行,则只应使用一个INSERT语句。


  5. 要清除它,这里是一个你可以开始的代码示例。用户上的SELECT在循环之前是一次,因为它似乎始终是相同的数据。在SQL语句中使用它们之前,应该添加一个函数来转义字符串,以避免引号出现时出错。如果出现问题,请查看PHP或SQL错误消息。

    if($_POST["Submit"]=="Submit"){
        $sql = "SELECT username, name, lastname, roomnum, dormID FROM user WHERE user.role='Student'";
        $result = mysql_query($sql);
        $student = mysql_fetch_assoc($result);
        for($i=0; $i < sizeof ($checkbox1); $i++){
            $sql = "INSERT INTO dailyattendance (username, name, lastname, roomnum, dormID, attendance, date, latecomment)";
            $sql.= " VALUES ('".$student["username"]."', '".$student["name"]."', '".$student["lastname"]."', '".$student["roomnum"]."', '".$student["dormID"]."'";
            $sql.= ", '".$checkbox1[$i]."', now(), '".$latecomment."')";
            mysql_query($sql); 
        }
    }