$sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='$username' order by userId asc"; 
根据语句无法确定是否正确,我不是高手,你把这个语句代到sql查询器里去,$username给1个值,看下SQL语句能否执行,不能执行的话,看下报的什么错误?

解决方案 »

  1.   

    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='$username' order by userId asc";这个sql有点问题 首先是""的问题,尽量用'';这是对Sql的优化, 还有就是 uname 是什么型的 要是varchar就不行了
    要加引号
    $sql='select * from phpcms_shangc where (zt='3' or zt='0') and uname=\''.$username.'\' order by userId asc';可是在sql试一下对不,再检查一下
      

  2.   

    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='$username' order by userId asc"; 从你的语句中可以看出,你的php版本比较低
    再页面中接值的时候最好使用 $_POST[]或者$_GET[]或者$_REQUEST[],这很重要的,在php5版本中你的$username都是错误的,是接不到值的
      

  3.   

     我试了 $_POST[] $_GET[] $_REQUEST[].....都不行 
    只要$username可以接到值  
    还有这会员登陆也不是我做的  看他代码 我也不知道写的什么YY  BOSS要求什么效果
    我也只有这样做了
      

  4.   

    他这个$username应该是表单post过来的不过代码不全很难判断哪里错了.
    一楼的说的对把SQL语句放到SQL查询分析器里看看出不出错.
      

  5.   


    先谢谢!
    我用''提示语法错误 改为了"" 没有语法错误 但不显示东西!!
    要是用
    $sql="select * from phpcms_shangc where zt='3' or zt='0'";
     可显示出全部会员符合要求的上传信息!显然是出错在uname='$username'这句
    不知道uname='$username'到底咋写??!! 上面说要提出$username 不知道怎么
    提?!
    同时在前台页面只要 echo $username;就可以得到刚前登陆的会员名 不知道这登陆
    是咋提交的?
      

  6.   

    试一试
    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".$username."' order by userId asc"; 
      

  7.   

    当然 一般来说应该添加trim函数 如下
    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
      

  8.   


    用这个
    $sql='select * from phpcms_shangc where (zt='3' or zt='0') and uname=\''.mysql_escape_string($username).'\' order by userId asc'; 
      

  9.   

    更正一下 
           $sql='select * from phpcms_shangc where (zt='.3.' or zt='.0.') and uname=\''.mysql_escape_string($username).'\' order by userId asc';有点不明白 你的zt是int吧 加''干吗?直接
    $sql='select * from phpcms_shangc where (zt=3 or zt=0) and uname=\''.mysql_escape_string($username).'\' order by userId asc';
    肯定行
      

  10.   

    回楼上的 我试了下  还是不行
    难道我的其他文件有错!!??
    类文件(sc.class.php):
    public function sc_cx_index(){ 
         $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
         $result=$this->dbconn->conn($sql);
         return $result;
    前台的:
    <?php
    include_once "class/sc.class.php";
    $result=$user->sc_cx_index();
    while($arr=mysql_fetch_array($result["rs"])){ 
    ?>
    说白了 这里的目的就是让会员只能看到自己上传的 符合要求(zt='3' or zt='0')的文件信息   本来登陆会员名(username)与保存在上传文件表的名(uname)就完全相等 怎么加一个条件
    就不可以了呢?
      

  11.   

    更正一下 
          $sql='select * from phpcms_shangc where (zt='.3.' or zt='.0.') and uname=\''.mysql_escape_string($username).'\' order by userId asc'; 有点不明白 你的zt是int吧 加''干吗?直接 
    $sql='select * from phpcms_shangc where (zt=3 or zt=0) and uname=\''.mysql_escape_string($username).'\' order by userId asc'; 
    肯定行这两个要是都不行 那就是你自己没把问题数清楚了 你先确定$username 这条数据存在不? 
      

  12.   

    回楼上 
    再次感谢!!
    要是不存在 那会员能登陆得上吗 不能登陆 我的问题就是白痴了 
    反正我也在纳闷儿  就能得到当前登陆的会员名 那这值是怎么传过来的啊
    我是新手 不懂 
    哎...  人苯了  就悲哀啊   妈妈的 搞不出来  就算了 我去把BOSS菜了 郁闷
    让我到别人的程序中去加 
      

  13.   

    public function sc_cx_index(){ 
        $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
        $result=$this->dbconn->conn($sql); 
        return $result; 
    }你这个方法里面 $username 都没传进来啊 老大 怎么可能运行成功?
      

  14.   

    类文件(sc.class.php): 
    public function sc_cx_index($username){ 
        $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
        $result=$this->dbconn->conn($sql); 
        return $result; 
    }
    前台的: 
    <?php 
    include_once "class/sc.class.php"; 
    $result=$user->sc_cx_index($username); 
    while($arr=mysql_fetch_array($result["rs"])){ 
    ?> 
      

  15.   

    不知道怎么部分红字  反正方法 和方法调用 都要加入$username这个参数才行啊
      

  16.   

    谢谢同仁们 
    可能不是SQL语句问题了 我看看别的  咱们这些吃"苦瓜"的人  伤脑细胞  
    容易早死啊 不想了 
       至此
         敬礼
      

  17.   

    汗 朋友 不要放弃啊~~~
    告诉你了  不是sql问题 你方法忘记传参数了。
    不信 你可以在
    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
    后面跟一句
    echo $sql;
    用来看看你的sql语句是不是对的
      

  18.   

    是这样 会员登陆的值是接过来了(hengying是当前会员登陆名)
    select * from phpcms_shangc where (zt='3' or zt='0') and uname='hengying' order by userId asc
    有谱了  
      

  19.   

    不过  用这句
    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and uname='".trim($username)."' order by userId asc"; 
    输出怎么只会得到会员当前登陆名(hengying)呢?
     这效果:select * from phpcms_shangc where (zt='3' or zt='0') and uname='hengying' order by userId asc 
    其他的信息死那去了
      

  20.   

    应该不会 你先看看数据库 你这个会员信息是否完全  然后 在数据库里面直接执行select * from phpcms_shangc where (zt='3' or zt='0') and uname='hengying' order by userId asc 这句SQL 看看是否还是仅仅只是当前登录名
      

  21.   

    在数据库里面直接执行select * from phpcms_shangc where (zt='3' or zt='0') and uname='hengying' order by userId asc 显示为空  
    但数据库中有符合要求的数据啊  怎么会为空呢?!
      

  22.   

    用like到可以 但会员名字符串有相同的话  这有个毛用 
    比如hengying和ying
    要是会员ying登陆的话  一查询 那不是hengying和ying都显示了
    $sql="select * from phpcms_shangc where (zt='3' or zt='0') and  uname like '%".trim($username)."%' order by userId asc";
    为什么uname='$username'呢?!
      

  23.   

    是不是没有接收到参数啊?
    select * from phpcms_shangc where zt='3'
    select * from phpcms_shangc where zt='0' 
    select * from phpcms_shangc where uname='trim($username)'
    分别试试
      

  24.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【Edenter】截止到2008-06-26 17:50:50的历史汇总数据(不包括此帖):
    发帖数:3                  发帖分:180                
    结贴数:3                  结贴分:180                
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  25.   

    全部可以接到
    我直接模糊查询了  就可以  $sql="select * from phpcms_shangc where (zt='3' or zt='0') and  uname like '%".trim($username)."%' order by userId asc";