贴了部分代码,看以下加粗部分哦~~赋值~class_id不能循环给idd~导致下面的查询,就显示一条~
<?php
   $str1="select class_id from class";
  $result=mysql_query($str1,$link_id);
    $idd='$class_id';
   if(!empty($_GET['page'])) $page = $_GET['page'];
else $page = 1;
$pagesize = 30;
if ($xlb =="" and $username=="") {
$str="select count(*) as amount from base";}
elseif ($xlb!="" and $username=="") {
$str="select count(*) as amount from base where xlb='$xlb'";}
elseif($xlb=="" and $username!="") {
$str="select count(*) as amount from base where username='$username' and id='$idd'";}
$rs=mysql_fetch_array(mysql_query($str,$link_id));
$amount=$rs['amount'];
$totlepage=ceil($amount/$pagesize);
if ($xlb =="" and $username=="")  {
$str="select * from base order by id DESC limit ".($page-1)*$pagesize.",$pagesize";}
elseif ($xlb!="" and $username=="") {
   $str="select * from base where xlb='$xlb' order by record_time DESC limit ".($page-1)*$pagesize.",$pagesize";}
elseif($xlb=="" and $username!=""){
   $str="select * from base where username='$username' and id='$idd' order by id DESC limit ".($page-1)*$pagesize.",$pagesize";}
   $result=mysql_query($str,$link_id);
  while($rs=mysql_fetch_object($result)){
      $i++;
  ?>

解决方案 »

  1.   

    $str1="select class_id from class";
    $result=mysql_query($str1,$link_id);
    $idd='$class_id';好像没有这样赋值的吧
    你至少要mysql_fetch_row,或是mysql_fetch_assoc才可以
    $result=mysql_query($str1,$link_id);
    $row = mysql_fetch_row($result);
    $idd=$row[0];
      

  2.   

    $str1="select class_id from class";
    $result=mysql_query($str1,$link_id);
    $class_id=mysql_result($result,0);
    $idd=$class_id;试试
      

  3.   

    楼上的说的都对~就是关键是~就
     $str="select * from base where username='$username' and id='$idd' order by id DESC limit "就查询一条出来哦~按我测试的,应该有三条~~
      

  4.   


    $str1="select class_id from class";
    $result=mysql_query($str1,$link_id);
    $class_id=mysql_result($result,0);
    $idd=$class_id;这样改过之后 
    打印下你的
    $str="select * from base where username='$username' and id='$idd' order by id DESC limit "
    这个sql   并将他放在你的数据库中执行看下是否满足你的猜想
      

  5.   

    不行哦~还是只查询一条记录~最新的那条~
    class_id只被传递一个~
    为啥啊??
      

  6.   

    如果你这个结果集中是含有多个class_id的  那你这里加个while循环不然你这里只取一次的
    $str1="select class_id from class";
    $result=mysql_query($str1,$link_id);
    while($row = mysql_fetch_assoc($result){
       $idd = $row['class_id'];
       。。
    }
    这样你的class_id才会被循环的付给$idd
      

  7.   

    对了 你这个while循环需要包括下面的语句·这个while循环相对于是对大的一层循环··当然建议将不变的东西都移出这个循环。省的每次执行循环的时候都执行一次相同的操作···
      

  8.   

    还是只显示一条~~贴出代码:<?php
    $str1="select class_id from class";
    $result=mysql_query($str1,$link_id);
    while($row=mysql_fetch_assoc($result)){
      $idd=$row['class_id'];
        }
       if(!empty($_GET['page'])) $page = $_GET['page'];
    else $page = 1;
    $pagesize = 30;
    if ($xlb =="" and $username=="") {
    $str="select count(*) as amount from base";}
    elseif ($xlb!="" and $username=="") {
    $str="select count(*) as amount from base where xlb='$xlb'";}
    elseif($xlb=="" and $username!="") {
    $str="select count(*) as amount from base where username='$username' and id='$idd'";}

    $rs=mysql_fetch_array(mysql_query($str,$link_id));
    $amount=$rs['amount'];
    $totlepage=ceil($amount/$pagesize);
    if ($xlb =="" and $username=="")  {
    $str="select * from base order by id DESC limit ".($page-1)*$pagesize.",$pagesize";}
    elseif ($xlb!="" and $username=="") {
       $str="select * from base where xlb='$xlb' order by record_time DESC limit ".($page-1)*$pagesize.",$pagesize";}
    elseif($xlb=="" and $username!=""){
       $str="select * from base where username='$username' and id='$idd' order by id DESC limit ".($page-1)*$pagesize.",$pagesize";}
       $result=mysql_query($str,$link_id);
      while($rs=mysql_fetch_object($result)){
          $i++;
      ?>
      

  9.   

    又或者这样$str1 = "select class_id from class";
    $result = mysql_query($str1, $link_id);
    $row = mysql_fetch_assoc($result);
    $class_id = array();
    while($row = mysql_fetch_assoc($result)){
        $class_id[] = $row['class_id'];
    }
    $idd = implode(',', $row);//获得所有class_id的列表然后更改你的sql语句 and id='$idd'  =》》 and id in ($idd)
      

  10.   

    [Quote=引用 11 楼 x1987xiaoxiao 的回复:]又或者这样$str1 = "select class_id from class";
    $result = mysql_query($str1, $link_id);
    $row = mysql_fetch_assoc($result);
    $class_id = array();
    while($row = mysql_fetch_assoc($result)){
        $class_id[] = $row['class_id'];
    }
    $idd = implode(',', $class_id);//获得所有class_id的列表
    更正下···刚写错了