0

假设我有这样的表格-

<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
}
4

2 回答 2

0

your comments are misleading, Dont Update should be update and Update should be create new why not just update everything anyway on submit

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
}
于 2013-04-17T12:41:47.023 回答
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'] 

}
于 2013-04-17T10:13:41.573 回答