2011-08-09 70 views
0

我在網頁上有一個命令,它調用一個控制器類,它執行將某些數據插入數據庫的模型函數,除非每次按按鈕數據插入三次而不是一次。mysql在一個查詢中執行多次插入

function run_no_submenu_job($job_name,$client_name,$server_id) 
{ 
    $this->Jobmodel->insert_client_history($userID,$firstname,$lastname,$clientname,$data['time']); 
} 

和模型功能如下:

$query=$this->db->query("INSERT INTO clientaccesshistory (jobid, clientid, firstname, lastname, clientname, menu, submenu, starttime) VALUES ('$time','$userID','$firstname','$lastname','$clientname','Monitor/Verify', '$this->job_name',current_timestamp())"); 

當我在數據庫中的信息來看已經加入三次。有時候時間戳是相隔1秒,有時候不是。有時候這種行爲不會發生,只是按預期插入一次。不知道這是否是與我的本地PC上的連接。

謝謝

+1

您發佈的代碼不會導致三次插入。請考慮發佈更多代碼,特別是包含循環的相關部分。 –

+0

這是我正在使用的所有代碼,唯一的循環是在視圖中顯示菜單選項列表(與mysql函數調用無關) – triq

回答

0

你是否在剔除按鈕按鈕?換句話說,函數是在「Button Down」還是「Button Click」上調用的?

區別在於「點擊」只會發生一次,但取決於您點擊按鈕多長時間,它將在多個更新週期中註冊爲「關閉」,從而多次調用插入。如果您無法訪問鼠標單擊事件,請嘗試僅在按鈕的值從上到下變化時調用該函數。

如果以上的情況下,HTML會

<input type="button" onClick=run_no_submenu_job> 

但是,您不能給函數提供的參數這種方式。我使用Javascript已經很長時間了,所以我不確定如何解決你的問題。希望別人可以在這個問題上擴大。

+2

根據您的說法,取決於按下鼠標按鈕的時間長短,許多插入物必須發生。在這種情況下,每次插入的次數應該不同,並且不是總是3次。 – Vinay

+0

是的,我相信這是問題。你能提供一個解決方案來做到這一點與JavaScript?我只是使用codeigniter錨定函數,它返回一個鏈接到browswer的: – triq