我正在做一个学校项目-一个网站,上面有学生参加各种体育比赛的表演。我有三个表:
表1-“学生”
表2-“运动”
表3-“性能”
我想制作一个将数据添加到第三张表中的表格。 该表格应包括:
...但是我不知道如何实现这一目标。
我可以创建一个表单,用户在其中添加价值,然后从其下面的表中复制粘贴sport_id和student_id,但这是不切实际的。
我已经在互联网上搜索了一段时间,但是我没有找到任何解决方案,如果可以的话,它只能用于一个外键。
有人知道该怎么做吗?如果是这样,我将不胜感激! :)
编辑:我应该提到表“ students”和“ sports”中已经包含了所有数据,我只需要使用该数据插入新的演奏即可。
答案 0 :(得分:0)
我认为您要做的就是从表单($variable = $_GET["classinput"];
)中获取输入值,然后连接到数据库并为每个表的输入查询编写mysqli查询。
像这样:
$query = mysqli_query($connection, "INSERT INTO STUDENTS(id,class,firstname,lastname) VALUES (null,\"$class\",\"$firstname\",\"$lastname\")");
对所有表执行此操作。
答案 1 :(得分:0)
由于数据已经在学生和体育活动的表格中,因此可以使用一些select
语句来查询此信息,以便填充一些HTML下拉列表。使用选择查询和下拉菜单的优点在于,可以在向用户显示人类可读文本的同时,将选项value
设置为数据库ID。然后,页面只需要监视表单的提交,并从下拉列表中插入ID和性能指标即可。我还没有测试下面的代码,但这是一个快速的示例,说明了如何工作。
注意:我喜欢使用PDO接口来准备SQL查询,以防止注入攻击。
<?php
$user = 'user';
$password = 'password';
$con = new PDO('mysql:dbname=dbname;host=127.0.0.1;chartset=urf8', $user, $password);
$student_stmt = $con->prepare('select * from students');
$student_stmt->execute();
$sport_stmt = $con->prepare('select * from sports');
$sport_stmt->execute();
if (isset($_GET['student']) && isset($_GET['sport']) && isset($_GET['value'])) {
$student = $_GET['student'];
$sport = $_GET['sport'];
$value = $_GET['value'];
$insert_stmt = $con->prepare('insert into preformances (sport_id, student_id, value) values (:sport_id, :student_id, :value)');
$insert_stmt->bindParam(':sport_id', $sport);
$insert_stmt->bindParam(':student_id', $student);
$insert_stmt->bindParam(':value', $value);
$insert_stmt->execute();
}
?>
<html>
<head>
<title>Form</title>
</head>
<body>
<form action="self.php" method="get">
Student:
<select name="student">
<?php while ($row = $student_stmt->fetch(PDO::FETCH_ASSOC)) { ?>
<option value="<?php echo $row['id']; ?>"><?php echo $row['firstname'] . " " . $row['lastname']; ?></option>
<?php } ?>
</select>
Sport:
<select name="sport">
<?php while ($row = $sport_stmt->fetch(PDO::FETCH_ASSOC)) { ?>
<option value="<?php echo $row['sport_id']; ?>"><?php echo "$row['sportname']"; ?></option>
<?php } ?>
</select>
Performance: <input name="value" type="text" />
<button type="submit">Submit</button>
</form>
</body>
</html>
编辑: 在建议的注释中对代码进行了更改。