数据库
new_class
id   classname
10    新闻发布组
new_user
id  username password  classid(与news_class的ID关联)
7     test5    test5      10想做到当前用户如果属于新闻发布组,则显示出某个文字链接,以下是我自己写的代码,可惜无法实现,尚在自学阶段,也不知道对不对,规范不规范,特来请教各位高手!<?php
$username = $_SESSION["username"];
$result=mysql_query("select classid from `".$prefix."user` WHERE username='$username'");
if ($result == '10') {
    echo '<a href="nb/nb_new.php" >内部新闻</a>';
    }
?>

解决方案 »

  1.   

    if ($result == '10') {
    --------------------------------
    这样比较是不对的,楼主可以看看php手册中mysql_query的返回值:
    仅对 SELECT,SHOW,DESCRIBE 或 EXPLAIN 语句 mysql_query() 才会返回一个新的结果标识符,可以将其传递给 mysql_fetch_array() 和其它处理结果表的函数。处理完结果集后可以通过调用 mysql_free_result() 来释放与之关联的资源,尽管脚本执行完毕后会自动释放内存。手册中下面有此函数的实际用法,以及此函数使用结束之后如何获取查询到的数据
      

  2.   

    仔细检查,发现$result返回的是资源标识符,而不是最后的结果,所以修改了一下,但是还是无法实现<?php
    $username = $_SESSION["username"];
    $result=mysql_query("select classid from `".$prefix."user` WHERE username='$username'");
    $classid = mysql_fetch_assoc($result);
    if ($classid == '10') {
        echo '<a href="nb/nb_new.php" >内部新闻</a>';
        }
    ?>
      

  3.   

    <?php
    $username = $_SESSION["username"];
    $result=mysql_query("select * from `".$prefix."user` WHERE username='$username' and classid ='10'");
    $res = mysql_fetch_array($result);
    if ($res) {
        echo '<a href="nb/nb_new.php" >内部新闻</a>';
        }
    ?>
      

  4.   


    <?php
    $username = $_SESSION["username"];
    $result=mysql_query("select classid from `".$prefix."user` WHERE username='$username'");
    $classid = mysql_fetch_assoc($result);
    if ($classid['classid'] == '10') {
        echo '<a href="nb/nb_new.php" >内部新闻</a>';
        }
    ?>
    这样那?
      

  5.   

    楼主这样才对。<?php
    $username = $_SESSION["username"];
    $result=mysql_query("select classid from `".$prefix."user` WHERE username='$username'");
    $data = mysql_fetch_assoc($result);
    if ($data['classid '] == '10') {
        echo '<a href="nb/nb_new.php" >内部新闻</a>';
        }
    ?>
      

  6.   

    if (intval($data['classid'])==10 && !empty($username)){
    echo '内部消息!';
    }else{
    exit();
    }
      

  7.   


    也可以,有什么错误么?几个问题
    1.$prefix 有赋值么?2. $sql = "select classid from `".$prefix."user` WHERE username='$username'";
       echo $sql;
    看下sql语句是否执行正确。
      

  8.   

    $prefix 有赋值
    SQL语句是可以正确执行的,唯一的问题就是页面无法显示出所需要的链接
    以上几位的方法都试过了,还是不行
    print_r $data 打印不出来
      

  9.   


    print_r $data是个什么东东,哪里有$data?
    数据库中username对应的classid是10么?
    测试下classid
    $username = $_SESSION["username"];
    $result=mysql_query("select classid from `".$prefix."user` WHERE username='$username'");
    $classid = mysql_fetch_array($result);
    $classid = $classid['classid'];
    echo $classid;