2013-07-06 108 views
0

我試圖從一個單一的表訪問用戶數據在MySQL,以便將其顯示在屏幕上提取的用戶數據。無法從MySQL數據庫

例如。 「以」用戶名「登錄。」

我遵循了這個tutorial的指示。

這是我的函數:

//create function to fetch user data (eg. username, firstname, address, etc.) 

function fetchUserData($field) { 

$user_id = $_SESSION['user_id']; 

$query = "SELECT '$field' FROM users WHERE id = '$user_id'"; 
if ($query_run = mysql_query($query)) { 
    if ($query_result = mysql_result($query_run, 0, $field)) { 
     return $query_result; 
    } 
    } 
} 

我打電話的功能,像這樣:

$firstname = fetchUserData('firstname'); 
$surname = fetchUserData('surname'); 

echo 'Logged in as '.$firstname.' '.$surname.'.'; 

$_SESSION['user_id']工作,我已經測試它。但我無法收集與用戶ID相關的數據(用戶名,地址等)。

此外,$query_run在返回資源ID#7,這意味着什麼?

+0

定義 「不工作」 嗎?打印什麼而不是用戶名或名字? – DevZer0

回答

0

改變你的單引號括起來$field

$query = "SELECT '$field' FROM users WHERE id = '$user_id'"; 

以反引號

$query = "SELECT `$field` FROM users WHERE id = '$user_id'"; 
       ^ ^

而且,你不顯示mysql_connect()都有,所以很有可能你有一個變量範圍的問題 - http://php.net/manual/en/language.variables.scope.php - 讓你的查詢失敗,因爲沒有連接。您可以通過使用or die(mysql_error())驗證這一點 -

if ($query_run = mysql_query($query) or die(mysql_error()) { 

if ($query_run = mysql_query($query)) {...} 
else{die(mysql_error());} 
+0

非常感謝!反引人注目。它連接到服務器,我有這個目的:) –

+0

總是樂於幫助一個單獨的腳本。 – Sean

0
if ($query_result = mysql_result($query_run, 0, $field)) { 
     return $query_result; 
    } 

應該

if ($query_result = mysql_result($query_run, 0)) { 
     return $query_result; 
    } 

,或者您可以使用

if ($query_result = mysql_result($query_run, 0, "'".$field."'")) { 
     return $query_result; 
    } 

單引號添加到$場