我必须从表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=''");
}
}
答案 0 :(得分:0)
您的表名中有一个空白(在您的代码中):
插入每日出勤
您的INSERT语句中有一个WHERE子句,并且您正在使用SET的UPDATE语法:
INSERT INTO每日出勤日期='“。$ day。”',latecomment ='“。$ latecomment。”'WHERE dailyid =''“);
问题:您的表格中是否有一个名为“出勤”的栏目?
如果要添加包含所有列的行,则只应使用一个INSERT语句。
要清除它,这里是一个你可以开始的代码示例。用户上的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);
}
}