【问题标题】:inserting data from another table and data from textbox and checkbox to create a new record插入来自另一个表的数据和来自文本框和复选框的数据以创建新记录
【发布时间】:2014-06-25 12:29:33
【问题描述】:

我必须将表 1 中的用户名、姓名、姓氏、房间号和宿舍 ID 的值插入到表 2 中。

我必须在表 2 中插入今天的当前日期(它每天都在变化)、cmets(用户希望输入 - 这是一个文本框)和出勤率(出席、缺席、迟到)(这些是复选框) .

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

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

这是插入:

$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=''");   
    }
}

【问题讨论】:

    标签: php mysql checkbox insert textbox


    【解决方案1】:
    1. 您的表名中有一个空格(在您给定的代码中):

      插入每日考勤

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

      INSERT INTO 每日考勤设置 date='".$day."', latecomment='".$latecomment."' WHERE dailyid=''");

    3. 问题:您的表中有名为“出席”的列吗?

    4. 如果要添加包含所有列的一行,则应仅使用一条 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); 
        }
    }
    

    【讨论】:

    • 表格中没有空白。它被称为日常出勤。是的,有一个名为出席的列,在该列中是 ENUM,唯一的选项是“出席”“缺席”“迟到”。我不确定如何存储所有信息。目前,存储到 dailyattendance 表中的唯一信息是来自表用户的信息。
    • 那么如果总共有 3 个选项,我将如何验证复选框。复选框存在,复选框不存在,复选框延迟
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2023-03-23
    • 2022-01-18
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多