2012-03-30 11 views
0

データベースの[TeacherId]フィールドに$ teacherIdを挿入しようとしていますが、これを行うには正しいTeacherIdを見つけるために先生のユーザー名 'TeacherUsername'教師のユーザー名と一致する。この未定義の通知エラーを修正するには

問題は、私が述べ通知を取得していますということです: お知らせ:未定義のインデックス:ここにあるライン27上の/Mobile_app/QandATable2.phpでteacherusername:

$teacherid = "SELECT TeacherId FROM (SELECT TeacherUsername from Teacher where TeacherUsername = '".mysql_real_escape_string($_POST['teacherusername'])."')"; 

をなぜそれが私にこの通知を与えているので、そこに$ _POST方法には何の問題もありませんし、それはここ一番下で働いている:

<?php> 

    session_start(); 

     $username="xxx"; 
     $password="xxx"; 
     $database="mobile_app"; 

     mysql_connect('localhost',$username,$password); 

     @mysql_select_db($database) or die("Unable to select database"); 

     $teacherid = "SELECT TeacherId FROM (SELECT TeacherUsername from Teacher where TeacherUsername = '".mysql_real_escape_string($_POST['teacherusername'])."')"; 

     $sql="INSERT INTO Session (TeacherId) 
     VALUES 
     (' ". mysql_real_escape_string($teacherid) . "')"; 

     mysql_query($sql); 

     mysql_close(); 
?> 

<?php echo $_POST['teacherusername']); ?> 
012:以下
<?php echo $_POST['teacherusername']); ?> 

は完全なコードです
+0

'$ _POST'に何ISE?あなたは 'print_r($ _ POST)'をすることができますか?配列インデックスは大文字と小文字が区別されることに注意してください。 – Brad

+0

最初の '$ _POST ['teacherusername']'には目に見えない文字があるかもしれません。それを削除して書き直してみてください。 – MichaelRushton

+0

$ _POST ['teacherusername']に、教師が前のページのテキストボックスに入力したユーザー名を投稿します。たとえば、テキストボックスに「j.lu」と入力し、フォームを送信すると、エコーで「j.lu」が表示されます。だから、$ _POSTは動作しますが、それは私がやろうとしているクエリで認識されません。 – user1394925

答えて

1

POSTが発生したときにのみこのスクリプトが実行され、teacherusernameを設定する必要がある場合は、var_dump($ _ POST)して、フォームが実際にteacherusernameフィールドを渡しているかどうかを再確認します。フィールドは、オプションのことになっている場合

はそうでない場合は、試してみてください。

<?php 
if (isset($_POST) && isset($_POST['teacherusername'])) { 
    echo $_POST['teacherusername']; 
} 
?> 

は、このポストインデックスが設定されているポストであるので、該当のフィールドでエコーのみになります。エラーを適切に処理するためにelseを追加することもできます。 「このフィールドは必須です」というメッセージを返信するなど。このことができます

希望、

+0

さて、varダンプを行い、NULLが付いてきました。しかし、私は$ _POSTを$ _SESSIONに変更しました。(isset($ _ POST ['teacherusername'])){$ _SESSION ['teacherusername'] = $ _POST ['teacherusername']; }。問題は、データベースではTeacherIdフィールドに 'T1'と書かれていると思われますが、代わりに 'SEL'と表示されています。これは何を意味するのでしょうか? – user1394925

+0

var_dump($ _ POST)がnullの場合、フォームが正しく送信されていません。

タグの属性がmethod = "post"で正しく構成されていることを確認してください。 – ise

関連する問題