2013-07-06 73 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; 
    } 

单引号添加到$场