使用单个按钮更新单独的记录


update seperate records with a single button

我这里有一个表的代码:

while($record=mysql_fetch_array($myData) )  {
    echo "<form action=mydata3.php method=post>";
    echo"<tr>";
    echo "<td>" . $record['Id'] . "</td>";
    echo "<td>" . $record['Name']  . "</td>";
    echo "<td>" . $record['Surname']  . "</td>";
    echo "<td align='center'>" . "<input type=checkbox name=attendance value=". $record['Attendance'] . " </td>";
    echo "</form>";
    echo"<tr>";
    }

我想单击考勤按钮来更新 sql 数据库的记录。如果选中每个学生的复选框,则出席的值应为"是",如果未选中,则应为"否"。我设法做了一些事情,但正在获取第一个学生的复选框值,并将其提供给所有学生。

功能:

if (isset($_POST['updatesec'])) {
    $sql = " SELECT * FROM students";
    $con = mysql_connect("localhost", "root", "");
    if (!$con) {
        die("Cannot connect:  " . mysql_error());
    }
    $myData = mysql_query($sql, $con);
    while ($students = mysql_fetch_array($myData)) {
        $UpdateQuery = "UPDATE students SET Attendance=' " . check() . " ' WHERE  Id=$students[Id]";
        mysql_query($UpdateQuery, $con);
    }
}
Function check() {
    if (isset($_POST['attendance'])) {
        return 'yes';
    } else {
        return 'no';
    }
}

更新:我已更改代码如下

while($record=mysql_fetch_array($myData) )  {
echo "<form action=studentstable.php method=post>";
echo"<tr>";
echo "<td>" . $record['Id'] . "</td>";
echo "<td>" . $record['Name']  . "</td>";
echo "<td>" . $record['Surname']  . "</td>";
echo "<td align='center'>" . "<input type=checkbox name='attendance[".$record['Id']."]' value='". $record['Attendance'] . "' /> </td>";
echo "</form>";
echo"<tr>";
}

if (isset($_POST['updatesec']))  {
$myData = mysql_query( $sql,$con);
while ($students = mysql_fetch_array($myData)) {

   $UpdateQuery = "UPDATE students SET Attendance=  '" . check($students['Id']) . " ' WHERE  id=$students[Id]";
   mysql_query($UpdateQuery, $con);

}

}


Function check($id) {
        if (isset($_POST['attendance'][$id])) {
           return 'yes';
        } else {
           return 'no';
        }
     }

但仍然仅适用于表的第一个复选框

您需要

更改棋盘的名称和检查功能:

    function check($id) {
        if (isset($_POST['attendance'][$id])) {
           return 'yes';
        } else {
           return 'no';
        }
     }

echo "<td align='center'>" . "<input type=checkbox name='attendance[".$record['Id']."]' value='". $record['Attendance'] . "' /> </td>";

这样,您将拥有一个包含所有复选框的数组,其中包含指向服务员 ID 的链接。

while ($students = mysql_fetch_array($myData)) {
    $UpdateQuery = "UPDATE students SET Attendance=' " . check($students['Id']) . " ' WHERE  Id=$students[Id]";
    mysql_query($UpdateQuery, $con);
}

在旁注中。mysql_* 函数已弃用。U 应该转到 mysqli 或 PDO 并开始使用预准备语句