繁体   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