私が開発している PHP スクリプトは、その時点で表示されているプロファイルに基づいて、データベースからフィールド値を取得する必要があります。現在、私はこのスクリプトを開発しており、1 つの項目を除いて機能しています。問題は、表示されている値が、表示されているプロファイルではなく、ログインしているユーザーのプロファイルに基づいていることです。たとえば、 というタイトルの各プロファイルに関連付けられたフィールドがあるとしますprofile_key
。ログインしているユーザーには次の値があります。
profile_key=123
このユーザーが自分のプロファイルを表示すると、次のように表示されます。
profile_key=123
では、この例を 2 番目のユーザーで続けてみましょう。2 番目のユーザー (ログインしていないユーザー) のキー値は次のとおりです。
profile_key=789
現在、ログインしているユーザー (最初のユーザー) がログインしていないユーザー (2 番目のユーザー) にアクセスすると、ログインしているユーザーは、ログインしていないユーザーのプロファイルに次のように表示されます。
profile_key=123
ログインしたユーザーがログインしていないユーザーのプロファイルにアクセスしたときに表示されるキー値は、そのユーザーのプロファイルに設定された値です。
profile_key=789
このサイトは Joomla に基づいています。プロファイル キーの値を取得するためのクエリを示すスクリプトのスニペットを次に示します。
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Get User ID
$user = JFactory::getUser();
$id = $user->id;
// Select all records from the user profile table where key begins with "custom.".
// Order it by the ordering field.
$query = 'SELECT cb_profilekey FROM #__comprofiler WHERE user_id = ' . $id.'';
ご覧のとおり、クエリは、表示されているユーザー ページの ID ではなく、ページを表示しているユーザーの ID に基づいて値を取得しています。これは、私が信じている調整が必要な場所です。このリクエストにお時間を割いていただき、ありがとうございます。