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 インジェクションを防ぐ方法を学ぶ: Good Link

2.Mysql 拡張機能は、新しいコードの作成には推奨されません。代わりに、mysqli または PDO_MySQL 拡張機能を使用する必要があります。詳細: PHP マニュアル

2 番目の解決策:

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 に答える