我已经在phpMyAdmin中创建了一个数据库,其中包含用于数学,物理等主题的表。每个主题在表topic_id
中都有一个tb_topic
作为主键。每个主题可以有多个视频。管理员可以将视频添加到每个需要topic_id
作为表tb_video_management
中的外键的主题,以针对某个主题存储视频。
后端: 有一个按钮可以在form.php中添加视频
form.php:
<?php
$query = "SELECT topic_id, topic_name,aid FROM tb_topic";
$result = $con->query($query);
while($query_row = mysqli_fetch_assoc($result)) {?>
<tr>
<td><form action='edit.php' method='get'>
<button type='submit' name='edit' id = 'edit' value='<?php echo $query_row['topic_id'];?>' class='btn btn-success'>EDIT</button><br />
</form></td>
</tr>
<?php
} ?>
单击此按钮后,页面将导航到另一个页面“ edit.php”,该页面有2个按钮,一个按钮用于添加新视频,第二个按钮用于查看视频库。
edit.php:
$id = $_GET['edit'];
echo 'topic id----> ' . $id;
<form action='add_video.php' method='get'>
<button type='submit' name='add' id = 'add' value='<?php echo $id;?>' class='btn btn-success'>ADD NEW VIDEO</button>
</form>
<form action="video.php" method="get">
<button type="submit" name="goback" id="goback" value="submit" class="btn btn-primary">VIEW GALLERY</button>
</form>
添加视频的课程具有主题名称,详细信息等形式。
add_video.php
$id = $_GET['add'];
echo 'topic id----> ' . $id;
<form action="add_video.php" method="post">
Video Title: <input type="text" name="video_name"><br />
Video Detail: <input type="text" name="video_detail"><br />
Video Question: <input type="text" name="video_question"><br />
Video Link: <input type="text" name="video_link"><br />
<input type="submit" name="submit" value = "Submit"><br />
</form>
单击“提交”按钮时,将执行以下代码:
if(isset($_POST['submit'])) {
if(!(empty($_POST['video_name']) || empty($_POST['video_detail']) || empty($_POST['video_question']) || empty($_POST['video_link']))) {
$name = $_POST['video_name'];
$detail = $_POST['video_detail'];
$question = $_POST['video_question'];
$link = $_POST['video_link'];
$insert = "INSERT INTO tb_video_management(topic_id, video_name, video_detail, video_question,video_link) VALUES ('$id','$name','$detail', '$question','$link')";
if(!mysqli_query($con,$insert))
echo "error";
header('location:edit.php');
}
}
我面临的问题是,当我单击“提交”按钮时,$id
中的值丢失了(可能是因为按下了另一个按钮(提交))并且由于没有值而无法插入记录不再用于“ topic_id”。即使按下提交按钮,我也无法解决保持外键值的问题。
到目前为止,我一直在创建额外的表来保存topic_id
的值,这绝对不是正确的方法。
答案 0 :(得分:2)
要在另一页中使用$id
,必须将其存储为在提交后仍然存在。可以通过使用hidden
字段来实现。
您可以像这样设置$id
的值:
<input type="hidden" name="topic_id" value="<?php echo $id?>">
提交并重定向到add_video.php
后,您可能会获得与其他字段$id
相同的video_detail
值。
提交时外观如下:
if(isset($_POST['submit'])) {
$topic_id = $_POST['topic_id'];
}