Php 如何从url获取id,然后使用codeigniter将其插入数据库

Php 如何从url获取id,然后使用codeigniter将其插入数据库,php,codeigniter,codeigniter-url,Php,Codeigniter,Codeigniter Url,希望所有这些信息都能有所帮助 所以我现在做的是我有一个论坛页面,我已经设置好了,你可以选择一个类别,从这个类别中你可以插入一篇文章到这个类别中。我需要的帮助是获取数据库类别的id,以便在我回显时显示帖子。换句话说,在插入时将ID链接到页面 好的,我知道它插入了用户名消息标题ect,但它没有做的是从url获取1,并将1插入到category_id下的数据库中 这是我的url,我省略了主http来缩短它,但它的其余部分是数字1,这是我想要得到的,并插入原因,它将根据您选择的类别而改变index.ph

希望所有这些信息都能有所帮助

所以我现在做的是我有一个论坛页面,我已经设置好了,你可以选择一个类别,从这个类别中你可以插入一篇文章到这个类别中。我需要的帮助是获取数据库类别的id,以便在我回显时显示帖子。换句话说,在插入时将ID链接到页面


好的,我知道它插入了用户名消息标题ect,但它没有做的是从url获取1,并将1插入到category_id下的数据库中

这是我的url,我省略了主http来缩短它,但它的其余部分是数字1,这是我想要得到的,并插入原因,它将根据您选择的类别而改变
index.php/forum/create_post/1

这就是我的分类表的内容

ID    title   

1     community
这就是我的post表所拥有的,所有的主要信息都来自于此,我想将category_id连接到主category表

id标题消息日期用户id类别\u id加标记的用户名

这是将插入新帖子的第一个视图

视图:

<div id="container">
    <div class="module">
        <?php echo form_open('forum/create_post'); ?>
        <div>
            <?php
            echo form_label('Title', 'title');
            echo form_input('title', '');
            ?>
        </div>

        <div>
            <?php
            echo form_label('Message', 'message');
            echo form_input('message', '');
            ?>
        </div>

        <div>
            <?php echo form_submit('create', 'create new post'); ?>
        </div>
        <?php echo form_close(); ?>
    </div>

</div>
这是我正在插入数据的模型

public function createpost($data){
 $this->db->insert('post',$data);


}

根据您的URL
index.php/forum/create_post/1
,您的控制器功能应如下所示,以符合CI标准

public function create_post($category_id) {
因此,您可以直接访问
$category\u id
。不需要获取url段

   $res =  $this->forum->createpost(array(
        $id= $category_id,
       'title' => $this->input->post('title'),
       'message' => $this->input->post('message'),
       'user_id'=> $this->session->userdata('id'),
       'username'=>$this->session->userdata('username'),

     ));
if($res)
{
 // show thanks msg
}
else
{
 // show error msg
}
在您的模型中:

您可以检查是否插入了数据

public function createpost($data)
{     
   $this->db->insert('post',$data);
   if($this->db->affected_rows()>0)
     return true;
   else
    return false;
}

您不会再次向该页发送/1。您的表单必须从原始url发送/1

<?php echo form_open('forum/create_post'); ?>
看法


我发现了我需要做的一切,我必须将uri段插入一个隐藏的输入论坛,让它插入到正确的id框中,现在我能够连接正确的类别

是否要传递主类别id以创建页面并将其作为父类别存储在db中?要获取url参数1,请使用$id=$this->uri->segment(3);好的,在它检索之前我已经做过了,但是我怎样才能把它插入数据库呢?我想如果我理解你的意思是对的?我试图做的是从类别中获取主id并将其插入类别id中,以便链接到其所在的类别。这样,当它被回响时,它只会在那个类别中回响。所以一旦我这样做了,如何确保它输入到数据库中是我空白的?我不理解你的问题。你想确认数据是否被插入吗?是的,我想把所有的数据连同它所在的页面id一起,这将是它被插入的类别,并将id连同evrey thing一起插入到数据中。如果不让我知道的话,希望这更有意义。好的,我知道它插入了用户名消息标题ect,但它没有做的是从url获取1,并将该1插入category_id下的数据库
<?php echo form_open('forum/create_post'); ?>
public function create_post() {
if( !$this->session->userdata('username') ) {
    redirect('/'); // please login to continue
}

if( $this->input->post('create') ) {
    $this->forum->createpost(array(
       'category_id' => $this->input->post('category_id'),
       'title'   => $this->input->post('title'),
       'message' => $this->input->post('message'),
       'user_id' => $this->session->userdata('id'),
       'username'=>$this->session->userdata('username')
     ));
}

$data['category_id'] = $this->uri->segment(3);

$this->load->view('templates/header');
$this->load->view('forum/create_post', $data);
$this->load->view('templates/footer');
}
    <div id="container">
    <div class="module">
        <?php echo form_open('forum/create_post'); ?>
        <div>
            <?php
            echo form_label('Title', 'title');
            echo form_input('title', '');
            ?>
        </div>

        <div>
            <?php
            echo form_label('Message', 'message');
            echo form_input('message', '');
            ?>
        </div>

        <div>
            <?php echo form_submit('create', 'create new post'); ?>
        </div>

        <input type="hidden" name="category_id" value="<?php echo $category_id; ?>">
        <?php echo form_close(); ?>
    </div>
</div>