2017-01-20 12 views
1

私はCodeIgniterのデータベースから来た衣類アイテムを表示する小さなプロジェクトを作成しました。データはデータベースから取得されており、動作しています。カテゴリを確認するためのwhere条件と条件が機能しない場所を入れました。特定の結果を表示する代わりに、すべてのデータベーステーブルの結果が表示されます。私はURLを介してカテゴリパラメータを渡しています。データベースを自動ロードしました。CodeIgniterのコントローラーを介してモデルにパラメータを渡します。

これにより、ユーザは

<a class="dropdown-item" href="<?php echo base_url();?>index.php/Products/view/mens">Men's</a> 

メンズのリンクをクリックしたときにこれがこれがモデル

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class GetData extends CI_Model { 


    public function __construct() 
    { 

     parent::__construct(); 

    } 

    public function get_data($category_name=0){ 
     $query = $this->db->get_where('mens', array('category' => $category_name)); 
     return $query->result(); 
    } 


} 

/* End of file GetData.php */ 
/* Location: ./application/models/GetData.php */ 
?> 

データベースコントローラ

<?php 
if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Products extends CI_Controller { 
    public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('GetData'); 
} 


    public function view() 
    { 
     $category_name = $this->uri->segment(3); 
     $this->GetData->get_data($category_name); 
     $result = $this->GetData->get_data(); 
     $data['result'] = $result; 
     $this->load->view('products',$data); 
    } 

} 

/* End of file Products.php */ 
/* Location: ./application/controllers/Products.php */ 

?> 

をです私はホームページにパラメータを渡す方法ですテーブルフィールド - id、category、category_name、img_path、item_name

私はcategoryがmensと等しいかどうかをチェックし、結果が表示されているかどうかを調べるためにwhereを使用しました。また、category = womenの行が1つあります。しかし、特定の結果を表示する代わりに、すべての結果が表示されます。

+0

なぜあなたはモデルに$ categoryname = 0を渡していますか?削除= 0を確認してください。 –

+0

@jyotimishra:これは問題ではなく、$ category_name = 0のデータを取得しようとしています。私はこれらの2つのエラーにGetDataのための**欠落引数1を得る –

+0

@jyotimishra :: get_data()**と**未定義の変数:カテゴリ名**とき私はそれを削除 – Kasun

答えて

1

モデル:

public function get_data($category_name){ 
     $query = $this->db->get_where('mens', array('category' => $category_name)); 
     return $query->result(); 
    } 

コントローラー:

public function view() 
    { 
     $category_name = $this->uri->segment(3);   
     $result = $this->GetData->get_data($category_name); 
     $data['result'] = $result; 
     $this->load->view('products',$data); 
    } 

これをチェックしてください。

$ category_nameの最初の値が存在するかどうかを確認してください。

//削除する$this->GetData->get_data($category_name);これを既に定義しているので、コントローラからなぜあなたはあなたのコントローラーで同じ関数を2回呼び出しているのでしょうか?

+0

ありがとう、それはあなたが私の日を救った! – Kasun

関連する問題