2016-07-13 21 views
0

まず、私が現在のカスタマーユーザーシステムを構築しようとしている問題を解決するのを手伝ってくれてありがとう。WordPressのログイン(ユーザーID)と特定のテーブルデータ

まず最初に、私が構築しようとしているシステムについて簡単に説明すると、私のアプローチの背後にある意味を明らかにするかもしれません。私は、ユーザーがワードプレスログイン&登録システムを経由してWebサイトにログインすることができるシステムを構築しようとしていますが、その後、彼らのWordPressのIDに基づいて、どこからそのIDに関連した情報が与えられます


別のMySQLテーブル。

理由は、特定のデータを体重、身長、性別などの別のテーブルにユーザーに保存したいからです。

これが別のテーブルにある必要がある理由は、別のサービスのAPIが、データを直接(それを最新の状態にして)作成する特定のテーブルに保存するということです。


コード:この時点までは

$servername = 'server'; 
$username = 'username'; 
$password = 'password'; 

$conn = mysql_connect($servername, $username, $password); 

if(! $conn) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

$sql = 'SELECT pacientes.Id, wp_users.ID, pacientes.nombre 
     FROM pacientes 
     RIGHT JOIN wp_users 
     ON pacientes.Id = wp_users.ID'; 

    mysql_select_db('database'); 

    $retval = mysql_query($sql, $conn); 

    if(! $retval) 
    { 
     die('Could not get data: ' . mysql_error()); 
    } 

    echo "Fetched data successfully"; 
    mysql_close($conn); 

、すべてが意図したとおりに動作するようです。私はすべての死のコマンドですべての明確さを与えられているので、私は、データベースを見つけること、または私が言及したテーブルを見つけることに何か問題があるとは思わない。

コード(その2)さて、これはデータを正しくエコーさ

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
    echo "WordPress ID: {$row['ID']} <br> ". 
      "Patient Id: {$row['ID']} <br> ". 
      "Patient First Name: : {$row['nombre']} <br> ". 
      "Patient Second Name : {$row['apellidos']} <br> "; 
} 

。あなたが見ることができるように、患者ID &ワードプレスIDは、互いに正確に関連付けられています。患者テーブルの4番目のユーザーは確かにマヌエルです。

あなたはここに迅速にスクリーンショットを見ることができます:https://gyazo.com/300af05da9afc8bcffa8f7efac628691選ばれたように、私の問題は、このシステムは唯一の患者テーブルからデータを取得することで、それは、現在のユーザーのIDに関連付けされている


ワードプレスユーザーIDで

私は、以下にリンクするさまざまな情報源を見てきましたが、私が作成しようとしているものをこれまでに作成した人はいません。

再び;ここでの意図は、ユーザーがWordPressを使用してログインし、WordPress IDに基づいて患者テーブルのIDと共同して、それらのIDが両方で一致していることに基づいて、患者テーブルの固有のデータを表示するテーブル。

現在の研究は:

Integrating wordpress authentication with an existing user database

getting specific data from wordpress database table

Get the data of specific user in PHP


私は非常に任意のヘルプ、アドバイスをお願いしたり、を私に提供することができますガイド。ありがとうございました。

+0

万が一誰かがこれに手を貸すだろうか?私はいくつかの他の例を試してきましたが、どれも動作していないようです。私が根本的にPhp&MySQLのいくつかの概念を誤解しているのか、あるいはちょっとした間違いをしているのかどうかはわかりません。 –

答えて

0

ので、もう少し仕事の後、私は解決策を見つけた


コード(データベース接続& SQLクエリ)

$servername = 'YourServer'; 
$username = 'YourUsername'; 
$password = 'YourPassword'; 

$conn = mysql_connect($servername, $username, $password); 
if(! $conn) 
    { 
     die('Could not connect: ' . mysql_error()); 
    } 

// Get the current User ID of the person logged into WordPress. 
$currentUser = get_current_user_id(); 

$sql = 'SELECT wp_users.ID, sharedID, pacientes.nombre, pacientes.peso 
     FROM pacientes 
     RIGHT JOIN wp_users 
     ON pacientes.Id = wp_users.ID'; 

    mysql_select_db('Sql918293_2'); 
    $retval = mysql_query($sql, $conn); 
    if(! $retval) 
     { 
      die('Could not get data: ' . mysql_error()); 
     } 

    echo "Fetched data successfully"; 
    mysql_close($conn); 

これらのコードは、データベースからすべての関連データを引っ張ります共通のIDを持つ限り、両方のテーブルを使用できるようにこれらを結合します。この例では、WordPressユーザーのIDは患者テーブルのIDと一致する必要があります。

コード(のみ関連するユーザへのエコーデータ)

while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) 
{ 
    if ($row['Id'] == $currentUser) 
    { 
    echo 
      "WordPress ID: {$row['ID']} <br> ". 
      "Patient Id: {$row['Id']} <br> ". 
      "Patient First Name: : {$row['nombre']} <br> ". 
      "Patient Second Name : {$row['apellidos']} <br> ". 
      "----------------------------------------<br>"; 
    } 
} 

修正は、実際には本当に簡単だった、そしてそれは前に私の頭の中にポップなぜ私は考えています。私がしなければならなかったのは$ currentUser = get_current_user_ID()を適用することでした。 WordPressからIDを取得し、それを変数に入れる。声明はに対してチェックして、変数が正しかった場合にのみ情報をエコーする場合

は、その後、私はシンプルをしました。

if ($row['Id'] == $currentUser) 

これは、基本的には上で見たようID(患者ID)に対してチェックし、それが現在のユーザーと同じに等しい場合(すでにワードプレスにログインしているとして)、その情報を印刷します。

私は、これは誰に役立ちます願っています!

関連する問題