PHP如何在用户登录后从mysql表中选择并显示一行

gj3fmq9x  于 8个月前  发布在  PHP
关注(0)|答案(2)|浏览(44)

所以我做了一个网站,需要人们注册和登录,我想知道如何显示用户的信息后,他们登录?
我的会员区页面(members.php)的代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<?
session_start(); // the session variable in the login form is  $_SESSION['emailaddress']
?>

<html>
<head>

</head>
<body>

<?php

 echo "your email is... ".$_SESSION['emailaddress']; // i used only one session variable

 $user=$_SESSION['emailaddress'];

 $result = mysql_query("SELECT * FROM userinfo WHERE email='$user'");

while($row = mysql_fetch_array($result))
  {
  echo $row['firstname'] . " " . $row['lastname'] . " " . $row['password'];   
  }

 ?>

</body>
</html>

然而,当我登录后进入会员页面时,它只在第一个回声中显示用户的电子邮件地址(回声“您的电子邮件是......”)。“.$_SESSION”“电子邮件地址”];)。上面用于选择行中用户数据的算法是否有问题?

1qczuiv0

1qczuiv01#

最好的解决方法是首先在浏览器中打印查询

$query = "SELECT * FROM userinfo WHERE email='$user'";
echo $query; 
$result = mysql_query($query);


$row = mysql_fetch_array($result);
echo $row['firstname'] . " " . $row['lastname'] . " " . $row['password'];    

 ?>

顺便说一句,当检索1行时,你不需要一个while语句循环。
一旦你得到了查询,复制它并直接在数据库上运行它,然后用MySQL GUI工具或MySQL GUI工具检查结果,我相信你会发现问题;

  • 问候
jmp7cifd

jmp7cifd2#

在第14行中,在执行查询时,您忘记在$result中包含与数据库的连接。请参见下文。

$con=mysql_connect(hostname,username,password,databasename);

$result = mysql_query("SELECT * FROM userinfo WHERE email='$user'",$con);

相关问题