如何根据会话登录打印出用户名和用户年龄

时间:2011-02-06 18:04:13

标签: php

我对php很新。我试图根据用户会话登录打印出用户名和年龄,似乎无法弄明白。 我有两个单独的表,一个用于登录,另一个包含用户信息。

  

用户表ID-> 1 |登录 - > shawn@aol.com | passwrd - >财产以后
     usersinfo id-> 1 |登录 - > shawn@aol.com |用户名 - > mathewkng1 |年龄 - > 23

我可以使用$_SESSION['logon']打印会话登录,这将给shawn@aol.com  我想要做的不是打印出shawn@aol.com我想打印出23岁的mathewkng1。

我试过了,

SELECT users.*, usersinfo.* FROM users, userinfo WHERE users.logon = userinfo.logon

 $logon = session_start();

if($_SESSION['logon']){
while($rows = mysql_fetch_array($user )){
$username = $rows['username '];
$age= $rows['age'];

}
echo " .$username." <br> ".$age." ";
}

我收到以下错误$ username和$ age未定义。

3 个答案:

答案 0 :(得分:0)

$username = $rows['username '];

username后面的字符串中有一个空格。我想那应该不存在。此外,我无法看到这些表是否包含年龄。如果未定义$ username,则可能是因为没有返回记录。假设您的查询中存在错误(可能是由于重复的字段名错误,因为两个返回的表将包含相同的登录字段),但执行查询的方式也可能存在错误。

请尝试这些建议并检查mysql_query和mysql_fetch_ *的结果,看看是否发生了错误。如果mysql_query返回false(使用===运算符检查),请获取mysql_error()的结果以查看确切的错误。 如果您需要更多帮助,请发布该错误和更多代码。

答案 1 :(得分:0)

查看表结构,您不需要连接。

这足够了:

SELECT * from usersinfo where logon = 'shawn@aol.com'

session_start();

if($_SESSION['logon'])
{
    $query = "SELECT * FROM usersinfo WHERE logon=" . $_SESSION['logon']
    $res = mysql_query($user, $sqlConnection)

    while($row = mysql_fetch_array($res))
    {
        $username = $row['username'];
        $age= $row['age'];
    }

    echo $username ." <br /> ".$age;
}

答案 2 :(得分:0)

首先建议不要将登录作为第二个表的密钥进行中继。而是使用字段id_user而不是在userinfo表中登录id。

然后您也可以将选择更改为

Select * from users join userinfo on users.id = userinfo.id_users 

然后你有一个拼写错误

$username = $rows['username ']; 

我没有看到你在哪里做$ _SESSION ['logon']以及你在那里添加的内容但我猜它是该用户表的ID,所以你应该将其添加到那里的选择中。