gpt4 book ai didi

php - 使用复选框更新 php/mysql 中的表单条目?

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

我如何允许提交表单的用户更新他的“重新提交”条目例如

  • 12345678910 (unique id) , 提交带有选项的表单,

  • 12345678910,重新提交新的选择

负责“自动”更新此类表单条目的功能是什么。

我知道如果条目存在我可以使用检查,但是如果它存在我该如何更新它,如果它不存在我如何将它插入一个新行......

function checkstudentid($studentid)
{
$con = connectvar();
mysql_select_db("database1", $con);
$result = mysql_query(
"SELECT * FROM table WHERE studentid='$studentid' LIMIT 1");

if(mysql_fetch_array($result) !== false)
....
// I want to add the entry here since it doesn't exist...with checkboxes

// else , I want to update if it already exists

}

现在我也不是完全肯定上面的代码是否可以工作......但这就是我对初学者的看法,如果有任何其他方式或者我使用的方法是“错误的”,我会感谢提醒...或者如果我正在尝试的事情是可能的(我正在做的方式)...

注意事项

  • 我只有一个用于提交表单的 php 文件。
  • 我没有使用登录/注册系统
  • 我不想使用 HTML 显示表格中的所有数据,只是如果 studentid 已存在于表中,则“自动”更新

最佳答案

如果我使用不推荐使用的方法与数据库交互,我可能会这样做:

<?php
function checkstudentid($studentid) {
$con = connectvar();
mysql_select_db("database1", $con);
$result = mysql_query(
"SELECT * FROM table WHERE studentid='$studentid' LIMIT 1");

$query = '';
if (mysql_num_rows($result) > 0) {
$query = "UPDATE table SET column1='$value_one', column2='$value_two' WHERE studentid='$studentid'";
} else {
$query = "INSERT INTO table VALUES('$new_id', '$value_one', '$value_two')";
}

if (mysql_query($query)) {
return true;
} else {
return false;
}
}
?>

但话又说回来,我会使用 PDO 与数据库交互。

这是一个简单的 PDO 示例(您只需编写返回连接的函数):

<?php
function checkstudentid($studentid) {

$update = false;

$dbh = formPDOConnection();
$query = "SELECT studentid FROM table WHERE studentid=:id";
$stmt = $dbh->prepare($query);
$stmt->bindValue(':id', $studentid, PDO::PARAM_STR);
if ($stmt->execute()) {
if ($stmt->rowCount()) {
$update = true;
}
} else {
return 'failure to execute query';
}

// if we just need to update
if ($update) {
$update = "UPDATE table SET value1=:v1,
value2=:v2 WHERE studentid=:id";
$stmt = $dbh->prepare($update);
$stmt->bindValue(':id', $studentid, PDO::PARAM_STR);
$stmt->bindValue(':v1', $value_one, PDO::PARAM_STR);
$stmt->bindValue(':v2', $value_two, PDO::PARAM_STR);
} else {
$insert = "INSERT INTO table VALUES(:id,:v1,v2)";
$stmt = $dbh->prepare($insert);
$stmt->bindValue(':id', $new_id, PDO::PARAM_STR);
$stmt->bindValue(':v1', $value_one, PDO::PARAM_STR);
$stmt->bindValue(':v2', $value_two, PDO::PARAM_STR);
}

return $stmt->execute();
}
?>

不要让自己头疼,停止使用 mysql_*

关于php - 使用复选框更新 php/mysql 中的表单条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25937882/

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