假设我有一个这样的表格 -
<form method="post" action="process.php">
Mark Up Name <input type="text" name="mark_up_name">
Minimum Rate <input type="text" name="mark_up_min">
Maximum Rate <input type="text" name="mark_up_max">
<input type="submit" value="Save Mark Up">
</form>
将有许多标记,当用户编辑特定标记并单击“保存标记”时,将进行背景检查以查看是否已在数据库中标记该名称。如果有,则会向用户显示已使用该名称标记并且存在的消息。如果没有,请继续更新。
很高兴来到这里。但是,当用户尝试更新其他值(如最小速率或最大速率)时,保持标记值相同,消息仍显示为标记存在。由于数据库检查返回true。
我想知道我需要在这里应用什么逻辑才能解决这个问题。
我试过
if (CheckIfMarkUpExists($_POST['mark_up_name']))
{
//Dont Update. Show Message MarkUp Exists
}
else
{
//Update. Show Message MarkUp Saved
}
答案 0 :(得分:0)
function CheckIfMarkUpExists($form){
global $db;
$st = $db->prepare("SELECT * FROM user WHERE form=?" );
$st->bindParam(1, $form);
$st->execute();
if($st->rowCount() ==1){ return true;
} else{ return false;
}
}
if(CheckIfMarkUpExists($_POST['form'])){
$errors[] = 'MarkUp Exists';
}
if(empty($errors)){
$_POST['form']
}
答案 1 :(得分:0)
您的评论具有误导性,Dont Update应该更新 和更新应该是新的 为什么不在提交时更新所有内容
if (CheckIfMarkUpExists($_POST['mark_up_name']))
{
//Do UPDATE. but just the other fields
$gosql = "UPDATE table SET mark_up_min = POST['mark_up_min'] WHERE (id) or markup_name = markup_name
// Show Message MarkUp updated
} else {
// Create new / INSTALL - not an update. Show Message MarkUp Saved
}