2012-05-04 48 views
0

我很抱歉,這其實很簡單,但讓我非常煩惱。我一個星期左右一直在PHP上工作,並且在一分鐘內真正需要學習。以下是我目前的問題。我正在嘗試提取Google引薦關鍵字。管理,現在不能理解爲什麼它不會將值插入到數據庫表。捕獲和存儲推薦人

// capture referral url 
$referringPage = parse_url($_SERVER['HTTP_REFERER']); 
if (stristr($referringPage['host'], 'google.')) 
{ 
    parse_str($referringPage['query'], $queryVars); 
    echo $queryVars['q']; // This is the search term used 
} 

// general form data insert 
$sql="INSERT INTO refer_kws (kwid, keyword) 
VALUES('','what value should I have here')"; 

if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
echo ""; 

mysql_close($con) 

?> 

我試過幾個選項,他們只是保持輸入數組作爲值?但是當我使用「?echo $ _GET ['q']?」在頁面上工作正常,並顯示值?

我知道這很簡單。我真的但只是不能得到它。

回答

0

你不應該把數組放在''之間,這會使它成爲一個字符串。由於數組的字符串值是「數組」,它將在數據庫中存儲「數組」。 VALUES('',$referringPage)

+0

只要我讀了我知道的第一個位,一個....的兒子,謝謝。 – BrogenMacy

+0

不客氣。不要忘記標記我的答案是正確的:) –

0

你應該做一個查詢分開每種類型的網站如谷歌不會向客戶發送給你用「Q」 GET變量的關鍵字,並修改表中添加引用主機:

$referringPage = parse_url($_SERVER['HTTP_REFERER']); 
if (stristr($referringPage['host'], 'google.')){ 
    parse_str($referringPage['query'], $queryVars); 
    // echo $queryVars['q']; // This is the search term used --- no need to print this 
    $sql="INSERT INTO refer_kws (`kwid`, `host`, `keyword`) VALUES('', $referringPage['host'], $queryVars['q'])"; 

} else { 
    $sql="INSERT INTO refer_kws (`kwid`, `host`, `keyword`) VALUES('', $referringPage['host'], '')"; // other type of referrers - you can insert the full REFERRER here! 
} 
0

剛檢查下面的代碼可能會幫助你,哪些值是要放。

var_dump($referringPage); 
if (stristr($referringPage['host'], 'google.')) 
{ 
    parse_str($referringPage['query'], $queryVars); 
    var_dump($queryVars); 
    echo $queryVars['q']; // This is the search term used 
}