gpt4 book ai didi

单击按钮时的php mysql更新数据库

转载 作者:太空宇宙 更新时间:2023-11-04 15:00:51 25 4
gpt4 key购买 nike

如标题所述,我正在尝试编写一个代码来更新特定行的列(我称为“状态”)中的 bool 数据。我在表中使用 while 循环来显示新注册的行以及状态为 NULL 的行,我在 td 中分别放了两个按钮(接受、拒绝),这样它们就会显示给每个名字,我想要的是当单击接受按钮,它将其在表中的行的状态设置为 1,当单击拒绝时,同样的事情,但设置 0 而不是 1。

我对此做了很多研究,但遇到了一个又一个障碍,所以我真的希望你能在这方面提供帮助,非常感谢!

这是我的代码:

<table id="sHold" style="border:none;">

<?php
$conn = mysqli_connect('localhost', 'root', '', 'srs-db') or die('ERROR: Cannot Connect='.mysql_error($conn));

function getStudent () {
global $conn;
$query = "SELECT * FROM student_table WHERE status IS NULL;";
$result = mysqli_query($conn, $query);

$i = 1;

while ($row = mysqli_fetch_array($result)) {
$sId = $row['student_id'];
$sName = $row['student_name'];

echo "<tr id='sNew".$i."'>";
echo "<td>".$i." - </td>";
echo "<td>$sId</td>";
echo "<td>$sName</td>";
echo "<td><button name='sAcc".$i."'>Accept</button></td>";
echo "<td><button name='sRej".$i."'>Reject</button></td>";
echo "</tr>";

$i++;
}
if (isset($_POST['sAcc'.$i])) {
$row['status'] = 1;
}
}

getStudent();

?>

</table>

最佳答案

首先,你错过了<form>元素。如果没有它或没有 ajax,您的表单输入将毫无用处。

其次,你的$_POST检查只会检查最后一项。因为在你退出循环后 $i设置为循环中的最后一个值。因此,您的示例仅适用于最后一项。

<button>现在将发送$_POST具有索引之一 sAccsRej .它的值将是您的条目的 ID。

<table id="sHold" style="border:none;">
<form method="post" action="">
<?php
$conn = mysqli_connect('localhost', 'root', '', 'srs-db') or die('ERROR: Cannot Connect='.mysql_error($conn));

function getStudent () {
global $conn;
$query = "SELECT * FROM student_table WHERE status IS NULL;";
$result = mysqli_query($conn, $query);

$i = 1;

while ($row = mysqli_fetch_array($result)) {
$sId = $row['student_id'];
$sName = $row['student_name'];

echo "<tr id='sNew".$i."'>";
echo "<td>".$i." - </td>";
echo "<td>{$sId}</td>";
echo "<td>{$sName}</td>";
echo "<td><button type='submit' name='sAcc' value='{$sId}'>Accept</button></td>";
echo "<td><button type='submit' name='sRej' value='{$sId}'>Reject</button></td>";
echo "</tr>";

$i++;
}
}

if (isset($_POST['sAcc']) && intval($_POST['sAcc'])) {
$user_id = (int) $_POST['sAcc'];

// Do the database update code to set Accept
}
if (isset($_POST['sRej']) && intval($_POST['sRej'])) {
$user_id = (int) $_POST['sRej'];


// Do the database update code to set Reject
}



getStudent();

?>
</form>
</table>

Tip:我假设你是初学者。我重做了你的代码。但是您不需要将此代码投入运行。例如,使用函数来处理数据检索。不要用它来显示 html。

关于单击按钮时的php mysql更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34452648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com