2011-03-13 71 views
1

當前我在使用相同頁面的同時在我的php/mysql驅動的網站中添加和編輯記錄。添加工作正常,但更新時有一個問題,我正在尋求幫助。在同一頁面上添加/編輯時遇到PHP問題

有2頁 managedata.php顯示錶中的記錄和編輯記錄有一個編輯按鈕,我從中發送2個值update = 1和id = n(我的數據的id將編輯),它需要我的adddata頁面這樣

adddata.php?update=1&id=7 

,並在adddata頁面,如果我編輯的字段,然後點擊保存第一槍它完美 但如果有任何錯誤,我展示錯誤然後url更改爲

adddata.php so update m頌歌將是錯誤的,它創建新的記錄

我正在尋求這個問題的幫助。 1)我怎樣才能在查詢字符串中設置的值(的UpdateMode多少時間重新加載頁面),所以始終爲1

感謝

+0

要小心你的用戶決定更新與插入,你應該有強大的檢查/許可基於公關在用戶未通過認證等情況下不會發生這種情況; – Jakub 2011-03-13 07:22:40

回答

1

如果您要根據用戶的輸入是否更新插件的選擇數據庫中的新記錄通過URL發送一個參數,告訴腳本該做什麼,然後根據該參數處理信息。

例子:???比方說,你通過URL傳遞信息,像這樣的腳本add_data.php更新= new_entry & ID = 0或add_data.php更新= new_entry

或add_data.php更新= old_entry & ID = 7

然後做這樣的事情:

if (empty($_POST['id'])) { 
     $id = FALSE; 
    } else { 
     $id = (int) $_POST['id']; //Be sure that the id value received is a number with (int) 
} 

//So what are we doing again? Editing or adding new record? 
if (empty($_POST['update'])) { 
     $update= FALSE; 
    } else { 
     $update= $_POST['update']; 
} 


$stamp = md5(uniqid(rand(), true)); // I like to do this because every entry into the database would then be unique, and we can always edit without the system saying we are making duplicate content. This is good in case the user tries to edit and doesn't really edit but presses enter. 
if ($update && $update == 'new_entry') { //Check that everything went well with validations above. We don't check here for an id because this is a new record and so there should be no id after all. 
    //Insert new record into the database 

} elseif ($id && $id != 0 && $update && $update == 'old_entry') { 
    //Update the database 
} 
+0

也感謝你...... btw什麼是$ _POST ['內容'] – wannabeprogrammer 2011-03-13 07:59:03

+0

'內容'只是你想要放入數據庫的任何東西。爲了避免混淆,我已將其刪除。順便說一句,請記住不要檢查第一個if($ update && $ update =='new_entry')中的id {因爲如果它是一個新記錄,那麼您將沒有id並且在那裏爲一個id進行檢查將不會工作。如果您認爲這可以幫助您更多,請接受答案。謝謝。 – clientbucket 2011-03-13 08:16:49

+0

我已投票提出您的問題。請投我的答案。如果你認爲這是答案。謝謝。 – clientbucket 2011-03-13 08:40:10

0

只需ID檢查 雖然添加新記錄ÿ你不需要身份證。檢查它像

$id = $_REQUEST['id']; 
if(!empty($id)){ 
//add mode; 
} 
else 
{ 
    //edit mode 
} 

在編輯模式下 簡單添加隱藏場像

<input type="hidden" name="pid" value="<?php echo $_REQUEST['id']; ?>" /> 

在添加模式PID將是空和編輯模式下,它就會有一定的價值,所以你可以檢查以上再次編碼

Here if empty 

//insert query 

else 

// update query 
+0

謝謝,我會嘗試 – wannabeprogrammer 2011-03-13 07:58:20

相關問題