[英]Updating Form Values Only If Not Existing In Database
假設我有這樣的表格-
<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
}
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']
}
您的評論有誤導性,“不要更新”應該更新,而“更新”應該是新創建的,為什么不只是在提交時更新所有內容
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.