$query1 = $db->query("SELECT list_dir,list_id,list_name,list_status FROM ff_list WHERE list_status != 0 ORDER BY list_id ASC LIMIT 0, 30");
while($n = $db->fetch_array($query1)) {
 
 
$query2 = $db->query("SELECT vod_name,vod_cid FROM ff_vod WHERE vod_cid in ($n['list_id']) ORDER BY rand() LIMIT 0, 10");
while($m = $db->fetch_array($query2)) {
 
        $z[]='<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].$m['vod_name'].'</a></h3></div>';
}
}

解决方案 »

  1.   

    为什么你不把栏目表和文章表关联呢?
    两张表的关联都已经出来,vod_cid=list_id整合你的sqlselect list_name,vod_name,ff_list,ff_vod 
    where vod_cid=list_id 
    and list_status != 0
    and vod_cid in ($n['list_id']) ORDER BY rand() LIMIT 0, 10
      

  2.   

    少了一个fromselect list_name,vod_name from ff_list,ff_vod 
    where vod_cid=list_id 
    and list_status != 0
    and vod_cid in ($n['list_id']) ORDER BY rand() LIMIT 0, 10
      

  3.   

    2楼的版主大哥,报错啊
    syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in
      

  4.   

    $query2 = $db->query("SELECT vod_name,vod_cid FROM ff_vod WHERE vod_cid in ($n['list_id']) ORDER BY rand() LIMIT 0, 10");
    吧红色部分的单引号去了可以调用出来了
    但不是我想的结果调出来是这样的军事新闻aaaaaaaaaaaaaaaaa
    军事新闻bbbbbbbbbbbbbbbbb
    军事新闻ccccccccccccccccc
    军事新闻ddddddddddddddddd
    军事新闻eeeeeeeeeeeeeeeee
    娱乐新闻ffffffffffffffffff
    娱乐新闻gggggggggggggggggg
    娱乐新闻hhhhhhhhhhhhhhhhhh
    ...........
    不是我想要的栏目名称一个其它10条文章
      

  5.   

    $query1 = $db->query("SELECT list_dir,list_id,list_name,list_status FROM ff_list WHERE list_status != 0 ORDER BY list_id ASC LIMIT 0, 30");
    while($n = $db->fetch_array($query1)) {
       $z[]='<div class="linkbox"><h3>'.$n['list_name'].'</h3></div>';
      
    $query2 = $db->query("SELECT vod_name,vod_cid FROM ff_vod WHERE vod_cid in ($n['list_id']) ORDER BY rand() LIMIT 0, 10");
    while($m = $db->fetch_array($query2)) {
      
            $z[]='<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$m['vod_name'].'</a></h3></div>';
    }
    }
      

  6.   

    基本解决了最后一小步,版主大哥再帮忙下,试过各种都不行$query1 = $db->query("SELECT list_dir,list_id,list_name,list_status FROM ff_list WHERE list_status != 0 ORDER BY list_id ASC LIMIT 0, 30");
    while($n = $db->fetch_array($query1)) {
       $z[]='<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].'</a></h3>';
      
    $query2 = $db->query("SELECT vod_name,vod_cid FROM ff_vod WHERE vod_cid in ($n[list_id]) ORDER BY rand() LIMIT 0, 10");
    while($m = $db->fetch_array($query2)) {
            $z[]='<h3>'.$m['vod_name'].'</h3>';
      
    }
    $z = $z[].'</div>';
    }就是要在外层循环结尾处加个</div>,也就是在栏目30个循环后面加个</div>
    得到的效果是:
    '<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].'</a></h3>'.'<h3>'.$m['vod_name'].'</h3>'.'</div>';
    '<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].'</a></h3>'.'<h3>'.$m['vod_name'].'</h3>'.'</div>';如果这样加外层就把内层的隔断了:$z[]='<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].'</a></h3>'.'</div>';如果这样加到内层又每条文章都有个</div>:$z[]='<h3>'.$m['vod_name'].'</h3>'.'</div>';
    像我红色部分这样又有错误
    不知道问题说明白了吗?版主麻烦,谢谢了!
      

  7.   

    $query1 = $db->query("SELECT list_dir,list_id,list_name,list_status FROM ff_list WHERE list_status != 0 ORDER BY list_id ASC LIMIT 0, 30");
    while($n = $db->fetch_array($query1)) {
       $z[]='<div class="linkbox"><h3><a href='."'/".$n['list_dir']."/'>".$n['list_name'].'</a></h3>';
       
    $query2 = $db->query("SELECT vod_name,vod_cid FROM ff_vod WHERE vod_cid in ($n[list_id]) ORDER BY rand() LIMIT 0, 10");
    while($m = $db->fetch_array($query2)) {
            $z[]='<h3>'.$m['vod_name'].'</h3>';
       
    }
    $z = $z[].'</div>';
    }
      

  8.   

    $z[]='</div>';   这样不行么?