【发布时间】:2014-11-14 06:46:46
【问题描述】:
我怎样才能允许用户提交表单,以更新他的“重新提交”条目 例如
12345678910(唯一 id),提交带有选择的表单,
12345678910 ,重新提交新的选择
负责“自动”更新此类表单条目的功能是什么。
我知道如果条目存在我可以使用 check,但是如果它存在我如何更新它,如果它不存在则将其插入新行中......
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 提供了一套基本的工具,您的工作就是以各种组合/顺序使用这些工具来完成您的项目。您已经在上面的示例代码中使用了所有这些工具,您只需要实际了解这些工具是如何工作的。请注意,您最有可能受到sql injection attacks 的攻击
-
我会说你可以使用 MySQL 的
ON DUPLICATE KEY并标记studentid列,这样它会自动为你更新。 -
@Ohgodwhy ,这也会更新新条目(复选框)中的选择吗?我的意思是,如果新条目与已经存在的 studentid 匹配,它将替换它,但是 (selections) 列呢?
-
当然可以。您正在为它编写代码,为什么不呢? Have a look here
-
关于 sql 的 cmets,看看这个tutsplus article。对于良好的 sql 实践来说,这是一本非常好的入门书。我认为它实际上也使代码更整洁、更易读。