1

**你好。这些是我的结构:

我在 phpMyAdmin 中有 2 个表:

  • 类(classid(pk),className)
  • 学生 ( studentid(pk), classid(fk), studentName ) 1 个 form.php 和 1 个 form_post.php

我在 form.php 中完成了这个**

include_once("connection.php");


    $className= $_POST["className"];
    $studentName1= $_POST["studentName1"];
    $studentName2= $_POST["studentName2"];
    $studentName3= $_POST["studentName30"];


    $sql = "insert into class(className) values ('$className')";


    mysql_query($sql);

    $lastid=mysql_insert_id();


    $sql2= "INSERT INTO students (studentid, classid, studentName)
            VALUES (' ', $lastid, '$studentName')";

    mysql_query($sql2);

form_post.php:

            <tr>
              <td width="140"><span class="order">Class Name: </span></td>
              <td><span class="order">
                <input name="className" type="text" id="className" size="35" />
              </span></td>
            </tr>
            <tr>
              <td width="132"><span class="order">Student's Name: </span></td>
              <td><span class="order">
                <input type="text" name="studentName1" id="studentName1" />
              </span></td>
            </tr>
           <tr>
              <td width="132"><span class="order">Student's Name: </span></td>
              <td><span class="order">
                <input type="text" name="studentName2" id="studentName2" />
              </span></td>
            </tr>
            <tr>
              <td width="132"><span class="order">Student's Name: </span></td>
              <td><span class="order">
                <input type="text" name="studentName3" id="studentName3" />
              </span></td>
            </tr>

这是一种用于在其中注册班级和学生的表格。在 phMyAdmin 学生表中,studentid(pk) 有一个字段/列,classid(fk) 有一个字段/列,studentName 有一个字段/列,而我从朋友那里得到的这段代码有 3 个学生姓名字段。如何使用相同的班级外键将 3 个学生姓名插入 phpMyAdmin 学生表的 studentName 列?红色的词是令人困惑的词。我仍然是一个初学者,我整晚都在努力完成这项工作。但是,我仍然卡住了。谢谢 :)

4

3 回答 3

1

您可以使用插入多行,具体取决于您是否将相同的数据插入到相同的表中

逃避你的价值观总是好的

$className= mysql_real_escape_string($_POST["className"]));
$studentName1= mysql_real_escape_string($_POST["studentName1"]);
$studentName2= mysql_real_escape_string($_POST["studentName2"]);
$studentName3= mysql_real_escape_string($_POST["studentName3"]);

$sql2= "INSERT INTO students (studentid, classid, studentName)
        VALUES (' ', $lastid, '$studentName1'),
               (' ', $lastid, '$studentName2'),
               (' ', $lastid, '$studentName3')";

mysql_query($sql2);

建议:

1.学会防止MySQL注入:好链接

2.不推荐使用Mysql扩展来编写新代码。相反,应该使用 mysqli 或 PDO_MySQL 扩展。更多阅读:PHP 手册

第二种解决方案:

if(!empty($studentName1)) {
  $sql2= "INSERT INTO students (studentid, classid, studentName)
            VALUES (' ', $lastid, '$studentName1')";

  mysql_query($sql2);
}

if(!empty($studentName2)) {
  $sql2= "INSERT INTO students (studentid, classid, studentName)
            VALUES (' ', $lastid, '$studentName2')";
  mysql_query($sql2);
}

if(!empty($studentName3)) {
  $sql2= "INSERT INTO students (studentid, classid, studentName)
            VALUES (' ', $lastid, '$studentName3')";
  mysql_query($sql2);
}
于 2012-11-14T06:10:23.430 回答
0
$sql2= "INSERT INTO students (studentid, classid, studentName)
        VALUES (null, $lastid, '$studentName')";
于 2012-11-14T06:06:13.010 回答
0
$sql2= "INSERT INTO students (studentid, classid, studentName)
        VALUES ('', $lastid, '$studentName')";
于 2012-11-14T06:07:25.960 回答