CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  PHP

为何无法正常显示数据库的数据

楼主my3b(重阳公子)2003-08-03 20:35:20 在 Web 开发 / PHP 提问

$_SESSION['username']="$name";  
                                                  $_SESSION['userid']="$id";  
                                                  echo   "<p><center>登录成功!……<center>";  
                                                  echo   "<META   HTTP-EQUIV=REFRESH   CONTENT='0;URL=member.php'>";  
  上面的代码是我写的一段用户名及密码检测代码的session变量注册部分,运行倒是一切正常,但是转到member.php中后我用了这个代码来显示用户的数据:  
  <?  
  $sql="select   *   from   dbuser   where   id='$userid'";  
  $query=mysql_query($sql,$cn);  
  $recnum=mysql_fetch_array($query);  
  ?>  
  但这样就不行了,只会显示username(即能显示用户名),但其他都不能显示,我去掉where   id='$userid',数据倒是能显示了,但只能显示第一位数据(即第一名用户的资料),我觉得这userid可能注册,但我已在文件头部写了如下代码:  
  <?  
  session_start();  
  if(!isset($_SESSION['userid']))   {    
  ?>  
      <script   language=javascript>  
      alert("只有注册会员才有权限操作,请先登录   !")  
      </script>  
      <?  
      echo   "<META   HTTP-EQUIV=REFRESH   CONTENT='0;URL=index.php'>";  
  }else{  
  require   "head.php";  
  }  
  ?>  
  这个代码已经检测过了userid这个session变量,如果变量没有注册是不会通过检测的,但输入了正确的用户名和密码后能正常进入member.php中,这说明userid这个变量应该已经注册了,但id="$userid"却不行,不知大家都用什么样的代码,我研究了老半天还是没有参透,数据库中的数据一直无法正常显示,大家给看看应该怎样改哪?即where   id="$userid"怎样改才能正常显示哪?我打开session文件,内容如下:  
  username|s:5:"lzmyu";userid|s:0:"";  
  从中可看出这userid显示不正确了,但我不知道原因到底出在哪里,是$_SESSION['userid']="$id";写得不对吗? 问题点数:0、回复次数:5Top

1 楼cpio(备注)回复于 2003-08-03 21:53:42 得分 0

直接用  
   
  $_SESSION['userid']=$id;  
   
  试试看  
   
  加引号做什么?Top

2 楼my3b(重阳公子)回复于 2003-08-03 22:12:18 得分 0

$_SESSION['username']="$name";  
  $_SESSION['userid']="$id";  
  我试过了,就要加上引号,不加就不行,但username变量能传递过去,但userid变量无论如何都无法传递过去,这是什么原因?Top

3 楼blueoxygen(有你在身旁 心更坚强)回复于 2003-08-03 22:37:22 得分 0

首先,你在member.php来echo   $_SESSION['userid']   ;一下,看看有没有值Top

4 楼azhilaoa()回复于 2003-08-04 03:27:22 得分 0

请按照如下步骤进行调试:  
   
  1。确认   $name   及   $id   的付值正确。  
  在将值付给   SESSION   之前,在页面上输出两个变量的值。  
  echo   "<br>\$name   =   $name";  
  echo   "<br>\$id   =   $id   <br>";  
   
  2。确认对   SESSION   的付值正确。  
  $_SESSION['username']=$name;  
  $_SESSION['userid']=$id;  
  暂时删除这两行付值代码后面的所有代码,运行你的程序页面,  
  然后马上去查看你的session文件,看看里面的   username   及   userid   的值是否正确。  
   
  3。确认   SESSION   变量在两个页面之间的传递正确。  
  在你的目的页面程序里面,在使用你的   SESSION   变量之前先输出他们的值。  
  echo   "<br>\$username'   =   $username";  
  echo   "<br>\$userid'   =   $userid   <br>";  
   
  4。确认   sql   语句正确。  
  $sql="select   *   from   dbuser   where   id='$userid'";  
  跟着增加调试输出语句:  
  echo   "<br>\$sql   =   $sql   <br>";  
  echo   "<br>\$sql   =   $sql   <br>";  
   
  5。用验证过的   sql   语句在你的数据库客户端上是运行并察看结果。  
   
  6。确认数据库查询正确。  
  修改你的代码增加   die   部分  
  $query=mysql_query($sql,$cn)   or   die("Cannot   execute   query   to   get   member's   info.");  
   
   
  用这一系列步骤将可以帮助你确定问题出在哪里。  
   
  如果还是找不到出问题的地方,或有什么其它问题,贴出你的更加准确完整的  
  页面代码以供研究。  
   
  例如你说“但这样就不行了,只会显示username(即能显示用户名),但其他都不能显示”  
  和“数据倒是能显示了,但只能显示第一位数据”。  
  列出你得到这些结果的准确完整的相关代码将会能容易看出问题在哪。Top

5 楼azhilaoa()回复于 2003-08-04 03:33:20 得分 0

你的   sql   语句是这样:  
  $sql="select   *   from   dbuser   where   id='$userid'";  
   
  我没有是过你的语句,你可以试试我这样的写法:  
  $sql="select   *   from   dbuser   where   id=\"".$userid."\"";Top

相关问题

  • 数据库的内容无法显示
  • 数据库中的图片为什么无法显示出来?
  • access数据库无法即时显示更新的数据库,有没有解决的方案?
  • 无法更新数据库?
  • 无法删除数据库!
  • 数据库无法附加
  • 数据库无法写入
  • 无法访问数据库
  • 如何显示数据库?
  • 显示数据库内容?

关键词

  • 代码
  • 数据库
  • 语句
  • 数据
  • 页面
  • 用户
  • 文件
  • php
  • sql
  • 变量

得分解答快速导航

  • 帖主:my3b

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo