本帖最后由 superfans98 于 2010-07-19 11:59:42 编辑

解决方案 »

  1.   

    小弟新手,正式开始学习php才几天的时间。高手见了这代码不要生气。
      

  2.   

    逻辑有点问题。你乍么在 while 循环里 赋值的呢???
    最好在 while 外赋值吧。
      

  3.   

    你怎么一会$db->query 一会mysql_query的?
      

  4.   


    $db->query 是用的一个类。
    mysql_query 用这个的之前,我用$db->query发现前一个查询被中断了。然后就用了这个。可能我哪里弄错了。然后就没再用那个类。直接用了这个。不过数据库查询结果都正常。各位大哥,麻烦帮我改一下代码吧。我实在弄不出来了。
      

  5.   

    在while外赋值也是一样的。一会我上图。
      

  6.   

    这中做法不好
    $db=new mysql()
    在这次db链接的其中还要链接的话可以声明$db2=new mysql()$tpl->assign('indexContent',$arrArticle);这句话在循环里面 最后你得到的是最后一个值 你是这样的需求吗?另外你的图看不见
      

  7.   

    回楼上:
    嗯。那个实例化的类我记下了。下次重新实例一个。
    我想得到的效果是:
    比如我现在有4个栏目a b c d,每个栏目里分别有一篇文章1 2 3 4,也就是说,在数据库里现在a栏目有一篇文章1,b栏目有一篇文章2,c栏目有一篇文章3,d栏目我想在首页显示出这4个栏目,并且栏目a里显示文章1,栏目b里显示文章2,栏目c里显示文章3.。就是这个意思。
      

  8.   

    图片的地址是
    http://dd.a.5d6d.com/userdirs/5/5/hackpro/attachments/month_1007/1007191219a2907cbee041bfc1.jpg
      

  9.   

    $tpl->assign('indexContent',$arrArticle);这句有问题 不管循环多少次 最终只有一个值 所以你所有的分类文章都是一样的 并且是最后一个分类的文章 
    你的数据结构应该类似这样
    $yourarray1[类别id]=$yourclass
    $yourclass->title=类别标题
    $yourclass->indexContent=文章内容
      

  10.   

    那个栏目显示正确。栏目标题也好还是个数也好,都正常。
    就是在每个栏目下显示这个栏目的文章的时候,出了问题。
    我现在的数据库中,就是a栏目有一条数据1,b栏目有一条数据2
    但是显示出来却是 数据1和2在每个栏目中都显示了。
    我觉得很可能是
    $tpl->assign('indexContent',$arrArticle);   //显示文章

    $tpl->assign('Variable',$arr);  //显示栏目
    用法不对。但是不知道该怎么修改。那个数据结构,具体怎么输出呢
      

  11.   

    代码不想写了  花时间 还得测试
    就是在循环内每次都实例一个新class,取出你要的值 赋值给class的成员变量,在每次循环的最后 把这个类加到数组里,此数组在循环外声明
    大体就是这思路  
      

  12.   


     $db=new mysql(DB_HOST,DB_USER,DB_PW,DB_NAME,"conn","gbk");
     $db2=new mysql(DB_HOST,DB_USER,DB_PW,DB_NAME,"conn","gbk");
             $SQL="select catid,fid,catName,url from gen_category";
             $rs=$db->query($SQL); 
             $i=0;
     $myarray = array();
             while($row = $db->fetch_array($rs))   
             {
         $myclass = new stdClass;
                 if ($row[fid]==0){
    $myclass->catName = $row["catName"];//类别title
                 }else{
    continue;
         }
                
                $SQL="select ctitle,ccontent from gen_info where cid=".$row["catid"];
                $rs1=$db2->query($SQL);
                while($row1 = mysql_fetch_array($rs1))  
                { $myclass->catName = $row1["ccontent"];//内容
                }
                $myarray[$row["catid"]]=$myclass;
             }
             $tpl->assign('Variable',$arr);
             $tpl->display('index.html');
      

  13.   

    上面最后错了  是         
    $tpl->assign('myarray',$myarray);
    $tpl->display('index.html'); 
      

  14.   


     $db=new mysql(DB_HOST,DB_USER,DB_PW,DB_NAME,"conn","gbk");
     $db2=new mysql(DB_HOST,DB_USER,DB_PW,DB_NAME,"conn","gbk");
             $SQL="select catid,fid,catName,url from gen_category";
             $rs=$db->query($SQL); 
             $i=0;
     $myarray = array();
             while($row = $db->fetch_array($rs))   
             {
         $myclass = new stdClass;
                 if ($row[fid]==0){
    $myclass->catName = $row["catName"];//类别title
    $myclass->url = $row["url"];//类别url
                 }else{
    continue;
         }
                
                $SQL="select ctitle,ccontent from gen_info where cid=".$row["catid"];
                $rs1=$db2->query($SQL);
                while($row1 = mysql_fetch_array($rs1))  
                { $myclass->ccontent = $row1["ccontent"];//内容
                }
                $myarray[$row["catid"]]=$myclass;
             }
             $tpl->assign('myarray',$myarray);
             $tpl->display('index.html');/************************/
    <div id="main">
            <div id="main_left">        </div>
            <div id="main_right">     <{foreach from=$myarray item=$myclass}>
                <div id="cat">
                    <div id="catTitle">
                        <a href="<{$myclass->url}>"><{$myclass->catName}></a>
                    </div>                    <{$myclass->ccontent}><br>            </div>
                <{/foreach}>
                
            </div>
        </div>也许错误很多  你将就一下
      

  15.   

    唉,我还是没能解决。已经整整一天了。
    smarty手册关于section这一节也看过了。尝试了其它的几个方法。虽然有一点改观,例如不会把所有文章显示在所有栏目里了,但是还没解决。
    不知道哪位可以直接在我代码的基础上修改一下。可以不用嵌套section。