0

テーブルの形式でmysqlデータベースからいくつかのレコードを取得するために、いくつかのphpコードを作成しました。テーブルには 3 つの列があり、最初の 2 つはデータベースから入力され、3 番目は各行のドロップダウン リストです。次に、入力された行からドロップダウン リストを選択し、各行の情報を新しいデータベースに保存します。

コードを表示して、提案に返信してください。

<html>
    <?
        // data from the "recordentry.php";
        $date = $_POST['date'];
        $course = $_POST['course'];
        $period = $_POST['period'];
        $batch = $_POST['batch'];
        $subject = $_POST['subject'];
        $faculty = $_POST['faculty'];
    ?>
    <p> Current Date&Time:<? echo $date ?></p>
    <form enctype="multipart/form-data" name="f1" method="POST" ACTION="<?=$self ?>"">
    <?
        $db = "contact";
        //mysql_connect(localhost,$_POST['username'],$_POST['pass']);
        $link = mysql_connect("localhost", "root", "");
        if (!$link)
            die("Couldn't connect to MySQL");
        mysql_select_db($db, $link) or die("Couldn't open $db: " . mysql_error());
        $result = mysql_query("SELECT name,uic FROM student where batch='$batch' AND course='$course' order by name") or die("SELECT ERROR: " . mysql_error());
        $num_rows = mysql_num_rows($result);
        echo "<table border='1' align='center'><tr><th>Name</th><th>Unique Identification Code</th>
    <th>Attendance</th></tr>";
        while ($row = mysql_fetch_array($result))
        {
            //Display the results in different cells
            echo "<tr><td align=center>" . $row['name'] . "</td><td align=center>" . $row['uic'] . "</td><td align=center><select name='attendance' style='background-color:#FFC'>
    <option>Present
    <option>Absent
    </select></td></tr>";
            $data[] = array(
                'name' => $row['name'],
                'uic' => $row['uic'],
                'attendance' => $row['attendance']
            );
        }
        echo "<tr><td><input type='submit' value='Submit' name='submit_button' />";
        echo "</table>";
        foreach ($data as $value)
        {
            $name = mysql_result($value['name']);
            $uic = mysql_result($value['uic']);
            $a_status = mysql_result($value['attendance']);
            $db = "contact";
            $link = mysql_connect("localhost", "root", "");
            //$link = mysql_connect("localhost",$_POST['username'],$_POST['password']);
            if (!$link)
                die("Couldn't connect to MySQL");
            mysql_select_db($db, $link) or die("Select Error: " . mysql_error());
            $result = mysql_query("INSERT INTO attendance(date, course, period, batch, subject, faculty,name, uic, attendance) VALUES ('$date', '$course', '$period', '$batch', '$subject', '$faculty', '$name', '$uic', '$a_status')") or die("Insert Error: " . mysql_error());
            mysql_close($link);
        }
    ?>
    </form>
</html>

上記のコードは、データベースから取得したすべてのデータをテーブルに取り込むことができます。ただし、送信後、最後の 3 つのフィールド $name、$uic、および $attendance を保存できません。だから、私を助けてください。

4

1 に答える 1

0

これを試して:

 $name = mysql_result($result, $value['name']);  
 $uic = mysql_result($result, $value['uic']);  
 $a_status = mysql_result($result, $value['attendance']);  

これにより値が1回取得されますが、(挿入時に)そのクエリで$ resultを再利用するため、上書きされます。最初の呼び出しまたは2番目の呼び出しのいずれかを変更します。

于 2012-12-16T13:12:50.827 に答える