使锚点加载页面包含来自DB中引用行的数据

时间:2010-06-03 19:29:44

标签: php codeigniter codeigniter-url

我正在尝试学习代码点火器库和面向对象的PHP,并且有一个问题。

我已经制作了一个加载我数据库中所有行的页面,并且在那里,我正在回显一个锚标记,它是以下结构的链接。

echo anchor("videos/video/$row->video_id", $row->video_title);

所以,我有一个名为Videos的类,它扩展了控制器,在该类中有索引和视频,这是正确调用的(当你点击视频标题时,它会发送给你的视频/视频/ 5) ,5是我正在使用的表的主键。

所以基本上我要做的就是将5传递回控制器,然后让特定的视频页面输出视频表中的特定行数据。我在视频控制器中的功能如下所示:

function video()
{
    $data['main_content'] = 'video';
    $data['video_title'] = 'test';
    $this->load->view('includes/template', $data);      
}

所以,基本上测试应该是测试,而不是测试,一个查询的返回值,表示在“视频”表中,video_id "5"的行,并使{{{ 1}}等于数据库中$data['video_title']的值...

现在应该知道这个但是没有,任何帮助都会受到赞赏!

3 个答案:

答案 0 :(得分:0)

您需要了解URI Class如何运作

基本上:

$default_url_args = array('video');
$url_args = $this->uri->uri_to_assoc(3,$default_url_args);
$video_UID = $url_args['video'];

然后像

$the_video = $this->videos_model->get_video_by_UID($video_UID);

答案 1 :(得分:0)

您可以使用URI类,也可以执行以下操作:

function video($video_id)
{
  $data['main_content'] = $this->videoprovider->get_video( $video_id );
  $data['video_title'] = 'test';
  $this->load->view('includes/template', $data);
} 

换句话说,对于扩展Controller的类中的函数,您可以向这些函数添加参数,CI将自动传入URI项以便这些参数。

function generic_function_in_controller($item1, $item2, ...)
{
  // would receive as: http://example.com/controller/generic_function_in_controller/item1/item2
}

答案 2 :(得分:0)

我不知道我是否已经太迟了但也许这可以解决你的问题...... 把它放在你的视频()函数

data[$query] = $this->db->query("SELECT * FROM videos WHERE video_id = 5");

然后在你的video_view文件中......

if ($query->num_rows() > 0)
{
   $row = $query->row_array(); 

   echo $row['title'];
   echo $row['something'];
   echo $row['somethingElse'];
}

这是一个很好的资源:http://codeigniter.com/user_guide/database/index.html

希望有所帮助...

并请有人编辑这个问题,因为它太难读了......