一个表单插入到许多表中

时间:2014-03-08 16:50:37

标签: php mysql

我使用下面的代码将数据插入表中。该表称为year1。

我的问题是,如果我有另一个名为year2的表,我怎么能使用相同的表单向其添加数据,同时仍然使用它添加到year1。我在想这些事情:

有一个额外的字段,用户可以输入年份的数字,例如“1”。这可以与表的名称进行比较,并将其与正确的名称进行比较。

要清楚。我希望表单提交到一个表(正确的表)而不是同时提交。

    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
 die('Could not connect: ' . mysql_error());
}

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$english = $_POST['english'];
$math = $_POST['math'];
$science = $_POST['science'];

$sql = "INSERT INTO year1 ".
       "(firstname,lastname, english, math, science) ".
       "VALUES('$fname','$lname',$english,$math,$science)";
mysql_select_db('education');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not enter data: ' . mysql_error());
}
header("Location: " . $_SERVER['PHP_SELF']);
//echo "Entered data successfully\n";
mysql_close($conn);
}
else
{
?>



<?php } ?>

          <p>Create a new student</p>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">


Firstname: <input name="fname" type="text" id="fname"><br>
Lastname: <input name="lname" type="text" id="lname"><br>
English mark: 
<input name="english" type="number" id="english"><br>
Math's mark: 
<input name="math" type="number" id="math"><br>
Science mark: 
<input name="science" type="number" id="science"><br>

<input name="create" type="submit" id="create" value="Submit">
</form>

1 个答案:

答案 0 :(得分:-1)

不清楚你的最终目标是什么。如果您希望在每次提交时将一个提交插入到两个表中,或者您希望每次提交都进入正确的表,但一次只能进入一个表。

如果你想每次插入两个表,那么只需用数据创建另一个sql_query。

如果你想让它只进入一个表,但每次都是正确的表,然后在html表单中添加年份的另一个输入,然后在mysql中添加一个if语句:

// using a ternary. if year is selected use it, if not use year 1
$table = ($_POST['year']) ? $_POST['year'] : 'year1';
$sql = "INSERT INTO $table ".
       "(firstname,lastname, english, math, science) ".
       "VALUES('$fname','$lname',$english,$math,$science)";

或者您可以在此表中放入另一个字段,并将所有信息放在一个表中,但表格可能会非常大。