簡體   English   中英

WordPress登錄名(用戶標識)和特定表數據

[英]WordPress Login (User ID) & Specific Table Data

首先,感謝您來嘗試幫助我解決當前構建客戶用戶系統時遇到的問題。

首先,對我要構建的系統的簡要說明可能會闡明我的方法背后的含義。


我正在嘗試構建一個系統,使用戶可以通過WordPress登錄和注冊系統登錄網站,但是隨后,根據其WordPress ID,將從另一個MySQL表中獲得與該ID相關的信息。

這樣做的原因是,我們希望將特定數據存儲到另一個表上的用戶,例如體重,身高,性別等。

之所以需要在另一個表中,是因為來自另一個服務的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);

到目前為止,一切似乎都按預期進行。 所有die命令使我一清二楚,所以我不懷疑查找或定位數據庫以及我提到的表沒有任何問題。

守則(第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> ";
}

現在,這可以正確地回顯數據。 如您所見,Patient ID和WordPress ID已正確關聯。 患者表中的第四位用戶確實是Manuel。

您可以在此處查看快速屏幕截圖: https//gyazo.com/300af05da9afc8bcffa8f7efac628691


因此,我的問題是使該系統僅從“患者表”中提取數據,該數據與WordPress用戶ID選擇的與當前用戶的ID有關。

我看過各種資料,這些資料我也將在下面鏈接,但是到目前為止,還沒有任何資料提供我嘗試創建的內容。

再次; 這里的目的是用戶可以使用WordPress登錄,並基於與患者表中ID一致的WordPress ID,應該根據患者ID中的ID匹配向他們顯示患者表中的特定數據表。

目前的研究:

將wordpress身份驗證與現有用戶數據庫集成

從WordPress數據庫表中獲取特定數據

在PHP中獲取特定用戶的數據


我非常感謝您可以為我提供的任何幫助,建議或指南。 謝謝。

因此,經過更多的工作,我找到了解決方案


代碼(數據庫連接和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語句進行檢查,並且僅在變量正確的情況下回顯信息。

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

如上所述,這基本上是根據ID(患者ID)進行檢查的,並且它是否與當前用戶相同(因為您已經登錄WordPress),然后打印信息。

希望對大家有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM