2011-12-05 106 views
1

我目前正在使用PHP,Mysql和Jquery的成员登录脚本(尽管我只需要与PHP和Mysql数据库有关的帮助)。我正在为此使用一个教程/脚本:Tutorial显示已登录的用户信息

因此,我的脚本目前看起来类似于教程中的编码,并对我的特定Mysql数据库进行了更改。我目前试图实现的是,一旦用户登录,我想要向他们显示具体信息,例如他们的姓名,职位等。我在mysql数据库中有这样的行,这也包含ID,用户名等具体而言,可以说我希望它在脚本中,这是在“demo.php”部分所示显示现货:

<?php 
    // FROM TUTORIAL PAGE 
    if(!$_SESSION['id']): 
?> 
[...] 
<?php 
else: 

?> 

<div class="left"> 

    <h1>Members panel</h1> 

     <p>You can put member-only data here. 
</p> 
     <a href="registered.php">View a special member page</a> 
     <p>- or -</p> 
     <a href="?logoff">Log off</a> 

     </div> 

     <div class="left right"> 
     </div> 

<?php 
    endif; 
?> 

它说:“你可以把唯一的成员数据在这里“,我希望代码从数据库中提取,以显示我想要登录的用户名所特有的信息。例如,如果用户”dan124“已登录,只有成员数据,我希望它显示dan124的目前的排名,积分等等。一个例子是我想从数据库中提取的一行是“pts”。

我已经尝试了几个不同的代码,并用我找到的一些东西修饰,但我无法得到我想要实现的东西。我知道我的基本数据库拉的方式,但这是我第一次专门与登录用户的信息。

如果任何人都可以提供帮助,我会非常感激。我确定我不是第一个使用过我正在使用的教程的人,并且希望获得这种信息,我找不到任何东西!如果您需要更多信息,请告诉我。

+0

'else'。什么是'if'?只有当某人登录后才想显示此内容,您如何检查该内容?你如何存储会话状态? –

+0

由于我正在使用该教程中的编码,因此if在顶部提供的教程链接中显示为完整编码。该如果是在步骤2,并开始在第51行我相信 – Cloudy

+0

我已经提交了我的编辑 - 我相信这已被同行评审了。 –

回答

1

非常感谢Tom Haws,他的回答帮助我找出了他提供的一些编码所需的编码。经过大量的试验和错误之后,我设法解决了php编码问题,以便从个人数据库中提取特定信息,并在他们登录时显示它。这是我使用它的编码:

<?php 
if($_SESSION['id']) 
$result = mysql_query("SELECT * FROM database WHERE `id` = $_SESSION[id]") 
    or die(mysql_error()); 

    while($row = mysql_fetch_array($result)) { 
echo '<b>Points Accumulated:</b>' .$row['pts']; 
echo '<br>'; 
echo '<b>Rank:</b>' .$row['rank']; 
}?> 

这导致登录的用户仅显示他/她的分数和等级,这正是我试图实现的目标。

1

我可能误解了你的问题,但我听说你需要基本的数据库体系结构和SQL方面的帮助。

一个使用MySQL将是非常常见的方法有visitor表看起来像这样:

visitor_id|visitor_login_name|visitor_current_rank|visitor_points_accumulated 
----------|------------------|--------------------|--------------------------- 
1   |dan124   |veteran    |1254 
6892  |mary8    |honored guest  |1 

现在,我的生活我不知道你是如何获得登录访客做没有比这更复杂的事情了,但是假设你让他们的login_name以session变量的形式登录,你可以使用下面的查询来获取你想要的信息。

$query = "SELECT * FROM `visitor` WHERE `visitor_login_name` = $_SESSION[visitor_login_name]"; 

然后,你将运行该查询,其结果将有你需要的结果数组成员的信息,像这样:

$排名= $结果[“visitor_current_rank”];

如果你可以给我一些反馈,说明我已经猜到了你的意图,我们可以从这里进一步移动。

+0

你猜对了我的意图。目前我的MYSQL表中有当前字段:'id,usr,pts,rank,pass,email,regIP,dt'。主键是id,唯一的键是usr。点数是用于点数,点数是用于排名等。我想让信息显示在第86行上,如教程中的第2步所示,其中编码已经记录了会话。 – Cloudy

+0

哦,另外,我也有一直假设PHP代码的一部分会像'echo'Points:“。$ row ['pts']。 “”;'就像我在非用户数据库中使用的那样,但是我一直无法得到这样的线路来工作。 – Cloudy

+0

使用您提供的一些变量管理我的编码。我发布了实际的代码作为我的答案,非常感谢汤姆! – Cloudy