2012-04-13 7 views
0

は私がthis-更新フォームの値がデータベースに存在しない場合にのみ

<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
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'] 

} 
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 
} 
関連する問題