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
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 に答える
0

あなたのコメントは誤解を招くものです。更新しないでください更新し、更新して新しいものを作成する必要があります。とにかく送信時にすべてを更新しないのはなぜですか

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 に答える