将从数据库获取的数据添加到新表中


Add data taken from database into new table

  <?php
   mysql_connect("localhost","root","");
   mysql_select_db("users_db");
   $query = "SELECT DISTINCT subject_name FROM subject";
   $result = mysql_query($query);
  ?>          
  <label for="student_subject_2">Subject 2</label>
  <select name="student_subject_2" id="student_subject_2">
      <option value="null" selected>--Select One--</option>
  <?php
   while($row = mysql_fetch_array($result))
   {      
  ?>
       <option value="<?php echo($row['subject_name']);?>"><?php echo($row['subject_name']);?></option>  
  <?php
  }
  ?>
  </select>
  <td><input type='submit' name='submit' value='Sign Up' align = 'center' /></td>

,你好

我想将这个选择的数据添加到数据库"users_db"中的一个新表中。

当我点击提交按钮后试图输入此数据时,出现了"未输入数据"的消息

表"subject"目前包含用户的四个选择

如有任何帮助,不胜感激

<?php 
     mysql_connect("localhost","root","");
     mysql_select_db("users_db");

     if(isset($_POST['submit']))
     {
        $student_subject_2 = $_POST['student_subject_2'];
        $query2 = "insert into students(student_subject_2) values ('$student_subject_2')"; 
        if(mysql_query($query2))
        {
            echo  "<script>alert('data entered')</script>";
        }
        else
        {
             echo  "<script>alert('data not entered')</script>";
         }
      }
  $query2 = "insert into students(student_subject_2) values ('$student_subject_2');

在这一行中,您缺少",将其更改为

  $query2 = "insert into students(student_subject_2) values ('$student_subject_2');"

你的代码很容易被mysql注入

注意 mysql_*函数,它们不安全且已弃用。考虑使用 pdo mysqli_ *

您的问题意味着您没有成功运行查询。虽然我们可能会猜出您的问题,但您最好能够准确地确定错误。

要解决这个问题,您需要显示mysql遇到的错误:
if(mysql_query($query2)){
    echo  "<script>alert('data entered')</script>";
}else{
    echo mysql_error();
    echo  "<script>alert('data not entered.')</script>";
}

另外,你应该使用mysql -库,它是不安全的,是不推荐的-使用mysqli或pdo。

参见选择数据库API