[英]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匹配向他们显示患者表中的特定数据表。
目前的研究:
我非常感谢您可以为我提供的任何帮助,建议或指南。 谢谢。
因此,经过更多的工作,我找到了解决方案
代码(数据库连接和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.