1

我有两张桌子:

  • 具有以下字段的“课程”:COURSE_ID(自动递增)、开始日期、结束日期、标题

  • 具有以下字段的“courses_students”:ID(自动递增)、COURSE_ID、STUDENT_ID。

我想从我的另一个名为“courses”的表中插入一些名为“courses_students”的mysql表中的值。用户可以在页面中看到来自“课程”的数据(课程名称、开始日期、结束日期),并且他们必须通过单击“关注课程”按钮来选择他们想要参加的课程。

每次有人单击提交按钮时,这些值都会插入到 courses_students 表中,但不正确。问题是每次来自“courses_students”的 COURSE_ID 都具有来自“courses”的最后一个 COURSE_ID 的值。而且,另一个奇怪的问题是这些值每次都插入两次。

这是代码:

<?php 

$link = mysql_connect('localhost','root','');
if(!$link){
    die('Could not connect: '.mysql_error());
}

mysql_selectdb("db");

?>
<ul>
<?php


$sql = "SELECT * FROM courses";
$result = mysql_query($sql);

while($file = mysql_fetch_array($result)){
    echo '<ul>';
    echo '<li>';

    $STUDENT_ID = $_SESSION['ID'];  
    $COURSE_ID = $file['COURSE_ID'];  //**It dislays the CORRECT ID for each course!**
    echo 'the course id: ' .$COURSE_ID;
    echo 'course name: ' .$file['title'];
    echo 'Starting: ' .$file['start_date'];
    echo ' ending: '.$file['end_date'];
    echo '<form action="lista_cursuri.php" method="post"> <input type="submit" name="submit" value="attent course!"> </form>';
    echo '</li>';



} 

?>
</ul>

<?php

if(isset($_POST['submit'])){

$sql1 = "INSERT INTO `courses_students` (COURSE_ID,STUDENT_ID) VALUES ($COURSE_ID,$STUDENT_ID)";
$result = mysql_query($sql1);

}

?> 

我看不出问题出在哪里。也许这不是正确的程序。

4

3 回答 3

3

致敬

更改 mysql_fetch_array它是一个多维数组,一次是数字索引,一次是字段名称,它会给你双倍的结果mysql_fetch_assoc

并且$COURSE_ID始终是最后一个,因为对于每个循环,它都会被覆盖

于 2013-11-13T15:37:02.713 回答
2

尝试这个:

第1部分:

while($file = mysql_fetch_assoc($result)){
echo '<ul>';
echo '<li>';

$STUDENT_ID = $_SESSION['ID'];  
$COURSE_ID = $file['COURSE_ID'];
echo 'the course id: ' .$COURSE_ID;
echo 'course name: ' .$file['title'];
echo 'Starting: ' .$file['start_date'];
echo ' ending: '.$file['end_date'];
echo "<form action='lista_cursuri.php' method='post'> 
      <input type='hidden' name='courseid' value='".$COURSE_ID."' >
      <input type='submit' name='submit' value='attent course!''> </form>";
echo '</li>';

} 

第2部分:

if(isset($_POST['submit'])){
  $course = $_POST['courseid'];
  $sql1 = "INSERT INTO `courses_students` (COURSE_ID,STUDENT_ID) VALUES     ($course,$STUDENT_ID)";
  $result = mysql_query($sql1);

}
于 2013-11-13T15:42:43.093 回答
0

尝试这个:

$sql1 = "INSERT INTO `courses_students` (COURSE_ID,STUDENT_ID) 
VALUES ('".$COURSE_ID."','".$STUDENT_ID."')"; $result = mysql_query($sql1);
于 2013-11-13T15:48:42.173 回答