0

画面に表示するために、mysql の単一のテーブルからユーザー データにアクセスしようとしています。

例えば。「'ユーザー名' としてログインしました。」

このチュートリアルの指示に従いました。

これは私の機能です:

//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 を返していますが、それが何を意味するのでしょうか??

4

2 に答える 2

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;
    }

$field に一重引用符を追加します

于 2013-07-06T06:01:26.310 に答える
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());}
于 2013-07-06T06:01:36.623 に答える