我对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未定义。
答案 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,所以你应该将其添加到那里的选择中。