1

私は2つのテーブルを持っています:

  • 次のフィールドを持つ「コース」:COURSE_ID(自動インクリメント)、開始日、終了日、タイトル

  • これらのフィールドを持つ「courses_students」:ID(自動インクリメント)、COURSE_ID、STUDENT_ID。

「courses」という別のテーブルから「courses_students」という mysql テーブルにいくつかの値を挿入したいと考えています。ユーザーは「コース」からのデータ (コース名、開始日、終了日) をページで見ることができ、「受講コース」ボタンをクリックして、参加したいコースを選択する必要があります。

誰かが送信ボタンをクリックするたびに、値がcourses_studentsテーブルに挿入されますが、正しくはありません.問題は、毎回「courses_students」のCOURSE_IDが「courses」の最後のCOURSE_IDの値を持っていることです.そして、他の奇妙な問題は値は毎回 2 回挿入されます。

これはコードです:

<?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

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 に答える