dongfang521 发表于 2009-11-20 21:42:50

如何在首页显示和百度新闻一样?

本帖最后由 dongfang521 于 2009-11-21 11:01 编辑

以下是二张数据表:

table1:categories :
categoryid,
categoryname.
-----------------------------------------
table2.newsinfo:

newsid,
title,
content,

categoryid.
如何输出到新闻首页:

类别1
------标题1
------标题2
------标题3
------标题4
------标题5
类别2
------标题1
------标题2
------标题3
------标题4
------标题5
类别3
------标题1
------标题2
------标题3
------标题4
------标题5
------标题4
------标题5

longjianghu 发表于 2009-11-20 22:48:18

楼主什么意思?

Hex 发表于 2009-11-21 02:48:52

是啊 什么意思?

dongfang521 发表于 2009-11-21 10:35:24

本帖最后由 dongfang521 于 2009-11-21 10:41 编辑

就是在前台页面,如何输出和百度新闻首页一样的数据?
类似于:
类别1
-----标题1
-----标题2
类别2
-----标题1
-----标题2
在如何在视图输出?
我用表连接,结果是类别分类显示了,可是每个类别下的标题也是一样的? (看图)

longjianghu 发表于 2009-11-21 12:03:29

执行一个联合查询,做后做一个算法处理一下就OK,实在不行你就在foreach栏目的时候在循环里再执行一个查询就OK。比如:
$category=(
array(id=>1,name=>'国内新闻'),
array(id=>2,name=>'国外新闻')
);
foreach($category as $v){
$query=$this->db->get_where('news',array(id=>$v['id'])->result_array();
下面的你应该知道如何处理了吧。
}

dongfang521 发表于 2009-11-21 13:02:56

回复 5# longjianghu


    我还是不太理解:
看下如下代码,怎么有错?
controllers:
function index() {
                  $data['page_title'] = '基于PHP架框新闻发布系统(学习版)';
                  $data['page_logo'] = '迅捷新闻发布系统';
                  $this->load->model('Mnews');
                  $data['CategoryName'] = $this->Mnews->category();                  
                  $data['newsinfo'] = $this->Mnews->newsinfo();                  
                  $this->load->view('header',$data);
                  $this->load->view('index',$data);
                  $this->load->view('footer');
                }   

models:
   
      function category() {
            $query = $this->db->get('categories');
            
            return $query->result();
      }      
      function newsinfo() {
   
            $query = $this->db->query("select * from categories, newsinfo where categories.CategoryID=newsinfo.CategoryID ");
            return $query->result();
}

viewS:


    <div id="content">
      <?php foreach ($CategoryName as $row):?>
      <div class="class">
            <h1><?php echo anchor('news/get_category/'.$row->CategoryID,$row->CategoryName);?><p align="right"><?php echo anchor('news/get_category/'.$row->CategoryID,'更多'.$row->CategoryName);?></p></h1>
            <ul>
            <?php foreach($newsinfo as $row):?>
            <li><?php echo anchor('news/content/'.$row->NewsID,$row->Title);?><span style="font-size:16px;"><?php echo '['.$row->IssueTime.']';?></span></li>
            <?php endforeach;?>
      
            </ul>
      </div>
      
      <?php endforeach;?>
      <div style="clear:both;"></div>
      
    </div>

Hex 发表于 2009-11-21 15:14:47

首先请问楼主知道join 查询吧?这是前提。

dongfang521 发表于 2009-11-21 20:39:31

回复 7# Hex


    join查询知道,我试了下,不过还是出错啊.

function newsinfo() {
            
$this->db->select('categories.CategoryID as CategoryID,categories.CategoryName as CategoryName,newsinfo.NewsID as NewsID,newsinfo.Title as Title');
            $this->db->join('newsinfo','newsinfo.CategoryID = categories.CategoryID','left');
            $this->db->group_by('categories.CategoryID');
      
            $query = $this->db->get('categories');
            return $query->result();

}也不知道如何在视图中输出?

longjianghu 发表于 2009-11-21 21:39:41

楼主还是看看ci手册吧。

Hex 发表于 2009-11-22 00:00:10

查询出来的是一个数组,然后用 foreach 循环。
至于你要百度的效果,这就看你怎么循环了,这应该和 CI 没什么关系了。
你用 PHP 怎么写,在这里还怎么写。
页: [1] 2
查看完整版本: 如何在首页显示和百度新闻一样?