想实现  只显示为A类(只包含a1,a2,a3,a4)的前10条记录

解决方案 »

  1.   

    看不明白:其中有一大类      A  -->id=1,  ===>这是什么意思?
      

  2.   

    类别表category
    --------------------------------
    id    title    fid
    1      A        -1
    2      a1        1
    3      a2        1
    4      a3        1
    5      a4        1
    6      B         -1
    7      b1        6
    ......
    主题表topics
    ---------------------------
    id     title     fid
    1      记录一     3
    2      记录       7
    3      记录三     5
    ..............
    要求:只显示topics表下的1,3(即topics表下fid=3,=5是属于A类的)条记录,
    且要求只显示A类前10条后将不再输出多于的记录。
      

  3.   

    我的做法是:
    function show_new_topic(){
    global $topics,$catalog,$conn,$linkerror;
    $query=mysql_query("select * from $topics order by id desc",$conn)or die($linkerror);
    $col=0;
    while($row=mysql_fetch_object($query)){
    $query1=mysql_query("select fid from $catalog where id='$row->fid'",$conn)or die($lilnkerror);
    $row1=mysql_fetch_object($query1);
    if($row1->fid==1){
    $col=$col+1;
    echo "$row->title";
    }
    if($col>=10){
    return;
    }
    }
    }
    当运行程序时,会只显示上现topics表中id=1,3两条记录。以后的程序会显示正常
    但当A类的数据大于10条时。也会显示10条记录,但以后的程序不会显示正常。好像前面有程序将什么中断了一样。是不是上面的根本写错了。
      

  4.   

    $id = 1; // A 的id
    $rs = mysql_query("select * from category where fid = $id"); // 取出$id的子节点
    while($r = mysql_fetch_row($rs)) // 取出子节点的id到数组$ar
      $ar[] = $r[id];
    $query = mysql_query("select * from topics where fid in(",join(",",$ar).") limit 10"); // 取出各子节点的内容
    while($row = mysql_fetch_object($query)) {
    // 其他语句
    }