2013-07-06 6 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'] работает, я проверял. Но я не могу собрать данные (имя пользователя, адрес и т. Д.), Которые коррелируют с идентификатором этого пользователя.

Кроме того, $query_run возвращает идентификатор ресурса № 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; 
    } 

добавить одинарные кавычки в $ поле

Смежные вопросы