Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据会话登录打印用户名和用户年龄_Php - Fatal编程技术网

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

Php 如何根据会话登录打印用户名和用户年龄,php,Php,我对php相当陌生。我试图根据用户会话登录打印用户名和年龄,但似乎无法理解。 我有两个单独的表,一个用于登录,另一个包含用户信息 用户表id->1 |登录->shawn@aol.com| passwrd->somthing 用户信息id->1 |登录->shawn@aol.com|用户名->数学1 |年龄->23 我可以使用$\u session['logon']打印会话登录,这将提供shawn@aol.com 我想做的不是打印出来shawn@aol.com我想把23岁的mathewkng1打印

我对php相当陌生。我试图根据用户会话登录打印用户名和年龄,但似乎无法理解。 我有两个单独的表,一个用于登录,另一个包含用户信息

用户表id->1 |登录->shawn@aol.com| passwrd->somthing 用户信息id->1 |登录->shawn@aol.com|用户名->数学1 |年龄->23

我可以使用$\u 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未定义

$username = $rows['username '];
用户名后面的字符串中有一个空格。我想那不应该在那里。此外,我看不出这些表是否包含年龄。如果未定义$username,可能是因为没有返回任何记录。假设查询中存在错误,可能是由于重复的Fieldname错误,因为两个返回的表将包含相同的登录字段,但执行查询的方式也可能存在错误

请尝试这些建议,并检查mysql\u查询和mysql\u获取的结果,以查看是否发生错误。如果mysql_查询使用===运算符返回false check,则获取mysql_错误的结果以查看确切的错误是什么。
如果需要更多帮助,请发布该错误和更多代码。

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

这就足够了:

选择*from usersinfo where logon='1shawn@aol.com"


第一个建议是不要将登录作为第二个表的键进行中继。而是使用字段id\u user,而不是在userinfo表中登录id

然后,您还可以将“选择”更改为

Select * from users join userinfo on users.id = userinfo.id_users 
那你就有打字错误了

$username = $rows['username ']; 

我不知道你在哪里做$\u SESSION['logon']以及你在那里添加了什么,但我猜这是那个用户表的一个ID,所以你应该将它添加到上面的select中。

这表明,$rows=mysql\u fetch\u array$user从不激发,这表明你的SQL查询没有返回任何行。请提供更多信息。就像您用于执行SQL的真实源代码一样。在这种情况下,正如其他人所指出的,您的mysql查询不会返回任何结果。$username=$rows['username'];结尾的空格不影响它,$\u SESSION['logon']不是用户登录时使用的登录名,这是确定用户登录是否正确的原因。
$username = $rows['username '];