2016-08-07 6 views
-1

2つのフォームから値を取得し、それらをデータベースに挿入する2つの送信ボタンがあります。問題は、2番目のテーブル(学生)に挿入するために最初のテーブル(コース)から最後に挿入されたIDを取得する必要があるが、動作しないということです。これは私がしたこと:LAST_INSERT_IDが機能しません

<?php 
$course_name = // the value of the field for the course name 
$student_name = // The first name of the student 
$student_age = // The age of the student 
$last_id = // The last id of table courses 
    if(isset($_POST['submit1'])){ 
      $query1 = "INSERT INTO courses (course_name)VALUES ('$course_name')"; 
       if ($object->query($query1) === true){ 
        $last_id = LAST_INSERT_ID(); 
        $good = "the course has been created"; 
       } 
       else{ 
        $bad = "Error: " .$query1.$object->error; 
       } 
    } 

if(isset($_POST['submit2'])){ 
      $query2 = "INSERT INTO students (course_id,student_name, student_age)VALUES ('last_id','$student_name','student_age')"; 
       if ($object->query($query2) === true){ 

        $good = "the student has been created"; 
       } 
       else{ 
        $bad = "Error: " .$query2.$object->error; 
       } 
    } 
?> 

私はそれが動作しない理由は分かりません。

+0

は、一つには、あなたがこれらの ' 'last_id'、 '$のstudent_name' の2に' $ 'サインを残しますあなたの価値の中で。それがあなたの実際のコードであれば、あなたのコードが失敗している可能性が高いでしょう。 '$ last_id '、' $ student_name '、' $ student_age''と読み替えるべきです。だから、これらの変更を加えてから、戻って問題の内容を教えてください。あなたは何が働いていなかったかについて言及したことはありません。 –

+0

変数やPOST配列に値があるかどうか、また変数が正しいかどうかはわかりません。私は1時間のための質問の周りに固執されませんので、あなたは私に直接pingする必要があります。 –

+0

私はあなたの質問の下に残されたコメントに応答しない(悪い)習慣があることを知っています。私はこれをあきらめてしまったので、あなたに答えを残した人に次のように質問してください。私はこれを渡します。がんばろう。 –

答えて

1

あなたは、PDOやmysqliなどを使用しているかどうかについては言及していません。mysqliの場合は$mysqli->insert_idです。あなたはPDOを使用している場合

if ($object->query($query1) === true){ 
     $last_id = $object->insert_id 
     $good = "the course has been created"; 
} 

OTH、それはstudent_age '、lastInsertId

if ($object->query($query1) === true){ 
     $last_id = $object->lastInsertId() 
     $good = "the course has been created"; 
} 
+0

私はmysqliを使用しています。私はまだそれが動作しない理由を知らない。ご協力いただきありがとうございます。 – princesse

+0

単語を使用しないでください動作しません。常に完全なエラーを与える – e4c5

+0

おはようございます!それはまったくエラーを表示しないという問題です。 – princesse

関連する問題