1

テキストボックスを作成したので、管理者が名前を入力して送信をクリックすると、データベースから取得したデータのリストが表示されます。

    <form method="post" action="">
        <?php 
        $teacherName = $_POST['teacherName'];
        if ($_POST['submitted'] == 1) {
            if($teacherName != ""){
                $getName = mysql_query("SELECT name, user_id FROM members WHERE name = '$teacherName'");
                $teacherdetails = mysql_fetch_array($getName);
                $teachername = $teacherdetails['name'];
                $teacher_id = $teacherdetails['user_id'];

                if($teachername != ""){
                    print $teachername . "<br/>";
                } else {
                    print "Give a valid name <br/>";
                }     
            }
        }

        if ($teachername == ""){ ?>
        Teacher name:<input type="text" size="20" name="teacherName"><input type="hidden" name="submitted" value="1"><br/>
      <input type="submit" value="Submit" /> 


<?php $getModule = mysql_query("......"); 
          while ($row2 = mysql_fetch_array($getModule)) { ?>   
          <input type="checkbox" name="modules[]" value="<?php print $row2["module_id"]?>"/> <?php print $row2["module_name"] . '<br/>'; } ?>
          </div><br/> <?php } ?>
          <input type="submit" value="Submit" />
</form>

以下に、このコードを(同じスクリプトで)書きました。

<?php

$modules = $_POST['modules'];

for($i = 0; $i < count($modules); $i++){
    $module=mysql_query("INSERT INTO module (module_id,user_id) VALUES ('$modules[$i]','$teacher_id')"); 
}
?>

しかし、何らかの理由で、変数「$teacher_id」(以前にデータベースから取得した値です。フォームでは正常に機能します) を呼び出すと、何も返されません。null ですが、理由がわかりません。

私は何か間違ったことをしていますか?

4

1 に答える 1

0

まず、PHP をフォームタグの外側、上部に配置します。

次に、受信しているデータが配列である可能性があります。複数の結果セットを持つ;

そのように返された場合に備えてこれを行います。

 foreach($teacherdetails AS $teacher) {
//also set the values of the variables here
echo $teacher['name'];
echo $teacher['user_id'];

} 

最後のビットについてですが、$teacher_id は結果を正常に出力していますか?

また、モジュールはどこから入力および投稿されていますか?

于 2013-03-25T23:29:25.807 に答える