2011-09-05 72 views
0

我正在爲客戶端開發後端功能。他們希望能夠通過非常基本的視圖添加新記錄和編輯舊記錄;我正在慢慢到達某個地方,但現在我被卡住了。恐怕我從一開始就沒有想到我的方法。數據庫更新功能幫助

這是它看起來像此刻:db update

「添加」字段集從一個按鈕,這是不是個大氣壓下顯示滑出。它完全按照它的說法向表中添加新記錄。這工作正常,我成功地使視圖動態(字段每個表更改等)和插入語句工作正常。但是,問題在於編輯功能。

當我按下記錄旁邊的「編輯」按鈕時,該行的值將被加載到上面的表單中。客戶可以編輯這些值並提交它們。或者應該可以。

我被困在這裏。大多數更新聲明讓我想把我的頭撞在牆上。隨着表,顯示,它不完全是難寫查詢:

$this->db->where('guestid' => $guestid)->update($table)

主這裏關鍵是guestid。我應該使用這個ID來知道我想更新哪一行。然而,目前,我沒有辦法告訴我的表格我要更新哪一行。我可以做一個隱藏的輸入字段,並將ID放在那裏..但是!就像我之前提到的那樣,我使用這個視圖來處理不同的表格。不是每個表都有guestid等。我當然可以編寫一個巨大的switch語句或if-structure來確定哪個表以及哪個id應該進入隱藏字段,但我正在尋找一種更簡單的方法。

這主要是讓我頭疼,因爲一些表加起來有PK(例如:我的表event_passeventIDpassID組合PK)。我不確定如何將此鏈接到表單,以及如何告訴我的應用程序'看,用這個PK'更新這一行上的這些值。

我在陣列中的所有表的元數據,所以我知道PK等:

[eventID] => Array 
    (
     [Field] => eventID 
     [Type] => int(10) unsigned 
     [Null] => NO 
     [Key] => PRI 
     [Default] => 
     [Extra] => 
    ) 

[passID] => Array 
    (
     [Field] => passID 
     [Type] => int(10) unsigned 
     [Null] => NO 
     [Key] => PRI 
     [Default] => 
     [Extra] => 
    ) 
    etc.. 

與我的思維過程的任何幫助,將在這裏感謝。我不是在尋找完整的代碼片段,只是一些想法,如何實現這一點的建議,讓我的生活變得更輕鬆。我可以提供更多其他表的外觀截圖,如有必要,我當然可以提供代碼。提前致謝。

+0

我們想念你的表架構非常感謝! – ajreal

回答

0

您需要從SHOW INDEX FROM <table>查詢(請參閱this)獲取主鍵並將主鍵數據發送到頁面 - 正如您所建議的那樣,隱藏輸入可能是實現這一目的的一種方式,這當然很好簡單,並且應該按照您期望的方式在每個瀏覽器中執行。

然後,所有你需要做的是讀取數據的請求提交時,建立自己的where子句對相應的UPDATE查詢...

+0

我有一個數組中的信息;我知道PK組成了哪些價值觀,但我很難將它們鏈接起來。特別是當有兩個值是PK時。儘管如此,我仍會繼續努力。謝謝。 – cabaret