2012-04-17 66 views
0
我目前使用的localStorage存儲哪些頁面當前用戶訪問

如何將localstorage數組存儲到MySQL數據庫?

<?php 
//start the session 
session_start(); 
//set $username as the current logged in user 
$username=$_SESSION["Username"]; 
?> 

JQuery的:

var journey = JSON.parse(localStorage.getItem('journey'))||[]; 
journey.push(location.protocol + 
'//' + location.host + location.pathname); 
localStorage.setItem('journey', JSON.stringify(journey)); 

目前,這是一個臨時的存儲,但是我也想給他們的選擇拯救他們的旅程。

我該如何將個人URL和用戶ID(已存儲在數據庫中)一起保存到MySQL數據庫中?例如表名'Journey'帶有列'URL'和'UserID'。

回答

1

MySQL的旅程表:

CREATE TABLE journey (
    userId INT NOT NULL, 
    journeyUrl VARCHAR(200) NOT NULL, 
    PRIMARY KEY(userId, journeyUrl), 
    FOREIGN KEY(userId) REFERENCES userTable(userId)   
); 

插入旅程查詢:

$insert_query = "INSERT INTO journey (userId, journeyUrl) VALUES ({$userId} , '{$journeyUrl}');"; 

更新旅程查詢,如果一個已經存在:

$update_query = "UPDATE journey SET journeyUrl = '{$journeyUrl}' WHERE userId = {$userId};"; 

你的PHP腳本將回顯結果是結果是布爾值。 true意味着節省了SUCESSFUL,造假手段節約是失敗的:

echo json_encode($result); 

你將有一個PHP腳本,執行基於是否有表中已經引用用戶的記錄,這些查詢。

的jQuery的AJAX功能,像這樣將調用腳本並保存行程:

$.ajax({ 
    type: "POST", 
    url: "savejourney.php", 
    data: { id : userid, url : journeyUrl }, 
    dataType: "json", 
    success: function(data) { 
     if(data) { 
      alert("Journey saved sucessfully!"); 
     } 
    } 
}); 
+0

PHP中的'$ journeyUrl'變量來自哪裏? – user1199649 2012-04-17 14:56:25

+0

它可以與AJAX查詢一起傳遞,我忘了添加它,但現在編輯它來反映。 – gimg1 2012-04-18 18:32:56

1

你想爲此做一個Ajax調用服務器。你需要做一個Ajax請求,你可以使用Jquery來完成。然後,您需要一個服務器端語言(如php)來處理請求並將其插入到數據庫中。

有一個對php文件執行AJAX調用以插入數據庫here的示例。請注意,這不是您在生產環境中執行此操作的方式。不過,這是一個很好的教程來了解這個過程。

編輯基於您的評論

下面我會進一步說明。上面的例子確實做了你想做的事。目前,您的數據位於「客戶」計算機上的JavaScript中。你想把它轉移到一個MySQL數據庫。

要做到這一點,你要使用JQuery或Javascript發送數據。在這個例子中,他們在位於HTML部分的<script> </script>標籤中使用Javascript。此javascript代碼用於將數據發送到接收它的php文件$q=$_GET["q"];然後php函數將這些數據插入到數據庫中。

在示例中,他們使用GET來實現此目的。您可能需要執行POST請求。值得你一邊查看difference between the two

+0

本教程是有用的,但它只是展示瞭如何使用PHP/MySQL的以html頁面發送數據,但我需要以其他方式發送它:html/jquery到php/mysql。 – user1199649 2012-04-17 14:18:19

+0

@ user1199649我已更新我的回答以反映您的評論。 – Aidanc 2012-04-17 14:24:19

相關問題