-1

データベースに 2 つのテーブルがあります ::: 1. tbl_category 2. tbl_product. ホームページにすべてのカテゴリ リストを表示し、ユーザーが単一のカテゴリをクリックすると、カテゴリ ID (tbl_product に含まれるカテゴリ ID) によって (tbl_product から) 製品ページに移動します。

問題 ::: ここにカテゴリ名と画像を表示したい。ユーザーがクリックしたカテゴリを確認できるように ( tbl_category から) ::: どうすれば取得できますか ??? 私を助けてください

コントローラ ::::

class Home extends CI_Controller{
//put your code here
public function __construct() {
    parent::__construct();
    $this->load->model('home_model');
}
public function index(){
    $data=array();

    $data['result']=$this->home_model->selectCategory($config['per_page'], $this->uri->segment(3));

    $data['maincontent']=$this->load->view('home_message',$data,TRUE);
    $this->load->view('home', $data);
}

public function category($category_id){
    $data=array();

    $data['result']=$this->home_model->selectProductByCategoryId($category_id);

    $data['maincontent']=$this->load->view('category_detail',$data,TRUE);
    $this->load->view('home', $data);
}

モデル::::

class Home_Model extends CI_Model{
//put your code here


public function selectCategory($per_page, $offset)
{
    $this->db->select('*');
    $this->db->from('tbl_category');
    $this->db->order_by("category_id", "desc"); 

    $query = $this->db->get('', $per_page, $offset);
    foreach ($query->result() as $row)
        $data[] = $row;

    return $data;

} 

    public function selectProductByCategoryId($category_id)
{
    $this->db->select('*');
    $this->db->from('tbl_product');
    $this->db->where('category_id',$category_id);
    //$this->db->order_by("product_id", "desc"); 
    $query_result=  $this->db->get();
    $result=$query_result->result();
    return $result;
}

意見::::

ここにカテゴリ名と画像を表示したい。そのため、ユーザーは :::: をクリックしたカテゴリを確認できます。

<?php 
        foreach ($result as $values)
        {
    ?>

    <div>
        <div>
            <a href="<?php echo base_url(); ?>product_category/product_detail/<?php echo $values->product_id ?>"><img src="<?php echo base_url();?><?php echo $values->product_image ?>" width="90%" height="220" /></a>
        </div>

        <div>
            <b><a href="<?php echo base_url(); ?>product_category/product_detail/<?php echo $values->product_id ?>"><?php echo $values->product_name ?></a></b> <br>
            <b>Price: <?php echo $values->product_price ?></b> <br>
            <a href="<?php echo base_url(); ?>product_category/product_detail/<?php echo $values->product_id ?>" class="a-btn">Order Now</a>
        </div>
    </div>

    <?php } ?>
4

1 に答える 1

1

コントローラ

public function category($category_id){
    $data=array();

    $data['result']   = $this->home_model->selectProductByCategoryId($category_id);

    // Added this line
    $data['category'] = $this->home_model->selectCategoryByd($category_id);

    $data['maincontent'] = $this->load->view('category_detail',$data,TRUE);
    $this->load->view('home', $data);
}

モデル_ホーム

public function selectCategoryById($category_id) 
{
    $result = $this->db->select('*')
        ->from('tbl_category')
        ->where('id',$category_id)
        ->get()
        ->result();

    return $result;
}

次に、それらのいくつかをビューにエコーします。

Model_Home他のモデルの機能を使用していますか?
モデルは、データと、そのデータに関係するすべてのもののためのものです。関数付きのとAND関数Model_Category付きのが必要です。モデルはページの説明には使用されません。selectByIdModel_ProductselectByCategoryIdselectById

MVCCodeIgniters の実装についてお読みください。次に、コードをリファクタリングし、codeigniters 機能を適切に使用します。正しく実装されていれば、これらの関数を自分で作成する必要さえありません! 注: 私は CI をよく知らないので、MVC や ORM などの特定の実装についてはわかりません。

于 2013-08-01T09:31:57.330 に答える