news_user表:  username   classid(栏目ID)
                admin       10 news_class表:   id(递增)      classname(栏目名称)
                    10                新闻动态 根据当前用户名来对两个数据表的classid和id进行比较,如果相等则输出classname。
以下是我写的查询代码,但是运行不成功,望各位大虾不吝赐教!
<?php 
$result = $db->query("select * from `".$prefix."class` where id=".$row['classid']);
    if (mysql_num_rows($result) == 1) {
    $row = $db->getarray($result);
    echo $row['classname'];
    exit;
    } 
?>运行结果显示为:   SQL语句错误: select * from `news_class` where id= 
请问如何修改!?????

解决方案 »

  1.   

    echo $row['classid']; //看看输出神马错误
      

  2.   

    SQL语句错误还是一样的!
    SQL语句错误: select * from `news_class` where id=  
      

  3.   


    我的意思是,$row['classid']有值吗?
      

  4.   

    不好意思,理解错误!确实没有!我刚接触MYSQL,请问我该在哪里修改?
      

  5.   

    把完整代码发上来看看,这里的$row变量是前面一条SQL查询获取的吗?
      

  6.   

    只有一个用户列表而已!$result=$db->query("select * from `".$prefix."user`");
    while($row=$db->getarray($result)){
    序号、用户名、操作(修改、删除)

    }
      

  7.   

    你前面已经有个$row,为了歧义,把后面的改为下面试试:<?php 
    $result = $db->query("select * from `".$prefix."class` where id=".$row[0]['classid']);
      if (mysql_num_rows($result) >0) {
      $row1 = $db->getarray($result);
      echo $row1['classname'];
      exit;
      } 
    ?>
      

  8.   

    您好!按照您的方法页面无法打开,空白的,后面我发现少了一个 },发现classid有值,但是出现了另外一个问题,就是所有的栏目名称全部显示出来,而且框架有重复显示,修改代码如下:<?php 
    if($_GET['act']== "userlist")
    {
    $result=$db->query("select * from `".$prefix."user`"); 
    while($row=$db->getarray($result)){
    序号、用户名、操作(修改、删除)

    ?>
    <form>
    序号、用户名、操作(修改、删除)

    <?php 
    $result2 = $db->query("select * from `".$prefix."class` where id=".$row['classid']);
    if (mysql_num_rows($result2) == 1) {
    $row2 = $db->getarray($result2);
    echo $row2['classname'];

    </form>
    ?>
    <?php }?>
      

  9.   

    那当然啦,你那不是有while循环,,他所有classid都查询出来了,每循环一次,就输出一个栏目名称。。请把你的问题说清楚。到底要干什么?
      

  10.   

    form重复的问题很好解决,把form标签移到PHPwhile循环代码前面即可(可以在PHP代码while循环前面加上这么一句echo "<form>\n";)。
      

  11.   

    根据当前用户名来对两个数据表的classid和id进行比较,如果相等则输出classname。
      

  12.   

    <?php  
    if($_GET['act']== "userlist")
    {
    $result=$db->query("select * from `".$prefix."user`");  
    序号、用户名、操作(修改、删除)

    ?>
    <form>
    序号、用户名、操作(修改、删除)

    <?php 
    echo "<form>\n";
    while($row=$db->getarray($result)){
    $result2 = $db->query("select * from `".$prefix."class` where id=".$row['classid']);
    if (mysql_num_rows($result2) == 1) {
    $row2 = $db->getarray($result2);
    echo $row2['classname'];
    }  
    </form>
    ?>
    <?php }?>form看起来好像解决了,但是classid还是都查询出来,只不过是显示form框架以外,为什么我的if判断语句不起作用?
      

  13.   

    你这里用$db,你有数据库操作类吗?
       mysql_num_rows($result2) >0  试试。