WordPress登录(用户ID)&具体表格数据

时间:2016-07-13 14:09:13

标签: php mysql sql-server database wordpress

首先感谢您前来尝试帮助我解决我目前尝试构建客户用户系统时遇到的问题。

首先,对我正在尝试构建的系统进行简要说明,可能会对我的方法背后的意义有所了解。

我正在尝试构建一个系统,用户可以通过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> ";
}

现在,这正确地回应了数据。正如您所见,患者ID&amp; WordPress ID彼此正确关联。患者表中的第4位用户确实是曼努埃尔。

您可以在此处看到快速屏幕截图:https://gyazo.com/300af05da9afc8bcffa8f7efac628691

所以我的问题是让这个系统只从患者表中提取数据,这与WordPress用户ID选择的当前用户的ID有关。

我已经查看过各种来源,我将在下面链接,但到目前为止还没有人提供我想要创建的内容。

再次;这里的意图是用户可以使用WordPress登录,并根据他们与患者表中的ID共存的WordPress 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

我非常感谢您提供给我的任何帮助,建议或指南。谢谢。

1 个答案:

答案 0 :(得分: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语句来检查,并且只在变量是正确的时候回显信息。

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

这基本上检查了ID(患者ID),如上所示,如果它与当前用户相同(因为您已经登录到WordPress),则打印信息。

我希望这对每个人都有帮助!