显示用户个人资料页面 PHP

Displaying a user profile page PHP

我目前正在创建一个社交网络。我正在使用以下代码显示所有注册用户。 有更好的方法吗?

<?php 
$query = $db->query("SELECT * from members");

while($r = $query->fetch()) {
    echo '<div class="col-sm-6 col-md-6 col-lg-3 membersGrid">';
    echo '<div class="profileThumb">';
    echo  '<img width="130" height="130" src="'.$r['profile_pic'].'"/><br>';
    echo $r['username'], '<br>';
    echo  $r['country'], '<br>';
    echo '<a class="viewProfile" href="profile.php"><button>View Profile</button></a>';
    echo '</div>';
    echo '</div>';

}
  ?>

我正在尝试为每个用户创建一个 link 个人资料页面。目前每个 link 都在上面的 while 循环中,但是,我有点不确定如何 link 到相关的个人资料页面。我猜我必须将一个变量附加到 URL。任何指导将不胜感激。

    echo '<a class="viewProfile" href="profile.php"><button>View Profile</button></a>';

这取决于您的 profile.php 页面如何处理 GET 变量,该变量决定了您所显示的人的个人资料。假设该变量称为 id 并且您在 members table 中有一行也称为 id (充当唯一键),那么您的锚标记将如下所示:

echo '<a class="viewProfile" href="profile.php?id=' . $r['id']. '"><button>View Profile</button></a>';

如果您要为用户配置文件生成 link 的列表,那么有几个不同的选项:

您可以将 $_GET 变量附加到 link 的末尾,正如 Lloyd

之前提到的
echo '<a href="profile.php?if=' . $r['id'] . '">';

或者你可以发送一个$_POST变量;最简单的方法是创建一个表单列表:

<?php 
$query = $db->query("SELECT * from members");
while($r = $query->fetch()) {
    echo '<div class="col-sm-6 col-md-6 col-lg-3 membersGrid">';
    echo '<div class="profileThumb">';
    echo '<img width="130" height="130" src="'.$r['profile_pic'].'"/><br>';
    echo $r['username'], '<br>';
    echo $r['country'], '<br>';
    echo '<form action="profile.php" method="post">';
    echo '<input type="hidden" value="' . $r['id'] . '" />';
    echo '<input type="submit" value="View Profile" />';
    echo '</form>';
    echo '</div>';
    echo '</div>';
}
?>

抱歉,如果我误读了您的问题,希望这对您有所帮助。

首先从数据库中检索用户的 user_id,就像您在查询时所做的那样。然后将此 id 提供给配置文件 link as:

echo '<a href="profile.php?userid=' . $user_id . '>Linkname</a>';

然后在profile.php中通过:

得到这个变量
$id = $_GET['userid'];

这样您就可以在 profile.php 中显示相关用户的个人资料。

希望你能得到这个想法。