2011-09-24 58 views
0

在我的遊戲頁面上,我有一個他們玩遊戲的頁面。在該頁面中我有一個查詢在頁面加載時插入查詢,插入兩次?

$insert_user_activity = mysql_query("INSERT INTO game_activity (user_id,user_full_name,game_id,game_name) values ('$user_id','$full_name','$browser_id','$game_title')");

這將登錄到我的數據庫,它只是坐在自己的,當我刷新頁面,這是因爲某些原因提交到數據庫的兩倍。

我是相當新的PHP,所以如果任何人都可以提供一些好的反饋而不給我濫用。這將是一個很大的折衷。

+0

每刷新一次或第一次加載一次,一次刷新? –

+0

可以說我輸入了遊戲的網址。查看數據庫,它在那裏兩次。每次刷新兩次。 – frankmeacey

+0

也許你只是以某種你不知道的方式調用它兩次。沒有看到所有的代碼,很難說。 –

回答

2

您的前端控制器的邏輯錯誤。

執行此查詢的頁面會在對您的站點發出的每個請求中調用。所以請注意您的瀏覽器的額外請求(肯定會是favicon.ico)。

然後更改前端控制器的邏輯,使其不會爲無效請求運行應用程序。否則,當網站上線時,不會有一個,但會有數千個虛假插入。

0

查詢執行頁面上的條件是什麼或者以其他方式如何獲取頁面上執行查詢的變量的值如果是這樣的話首先檢查變量是否存在設置比運行查詢。

0

我在Firefox中執行了兩次查詢時遇到了問題,但在其他瀏覽器(Chrome和IE)中沒有發生問題。我正在尋找答案,並找到了這篇文章。

我發現這一點:

如果我執行它被插入一個簡單的插入查詢兩次,當我在Firebug的「網」功能切換,這不會發生。奇怪。只是想添加到這個職位。 仍試圖解決這個問題。

{edit}更新: 我找到了一個解決方案,雖然它不是一個漂亮的解決方案。如果不存在這樣的記錄,我首先檢查選擇計數,如果不存在,則將插入,否則將不會。對我來說有詭計了。