2017-02-16 12 views
0

私のコントローラから関数を呼び出すときに問題があります。「非オブジェクトのメンバ関数num_rows()を呼び出す」と言いました。codeigniterの非オブジェクトのnum_rows()関数への呼び出し

これは、モデル

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

class Mymodel extends CI_Model { 
public function GetProduk($where=""){ 
    $data = $this->db->query('select * from produk'.$where); 
    return $data; 

} 

public function GetKategori($where=""){ 
    $data = $this->db->query('select * from kategori '.$where); 
    return $data -> result_array(); 
} 

} 

は、誰もがそれで間違っているものを私に伝えることができ、私のweb.phpコントローラからの私の機能というカテゴリ

public function categori($id){ 
    $cek = $this->mymodel->GetKategori("where kode_kategori = '$id'"); 
    if ($cek->num_rows() > 0) { 
     $data = array(
     "produk_populers" => $this->mymodel->GetProduk("where kode_kategori = '$id'")->result_array() 
     ); 

     $comp = array(
      "header" => $this->html_header(), 
      "navbar" => $this->html_navbar(), 
      "produk_populer" => $this->load->view("produk_populer",$data,true), 
      "kategori" => $this->html_kategori(), 
      "footer" => $this->html_footer(), 
     ); 
     $this->load->view("index",$comp); 

    }else{ 
     show_404(); 

    } 

} 

、これですか?

$cek = $this->mymodel->GetKategori("where kode_kategori = '$id'");

オブジェクトではありません。私はそれがから返される値は意味..おかげ

答えて

2

もののこの種の新たなんです。そのため、メソッドnum_rows()はその値のコンテキストには存在しません。

このメソッドを呼び出す前にvar_dump($cek)を試してみて、出力が何であるかを確認してください。

+0

var_dumpを使った後、これは次のようになります:array [1] {[0] => array(2){["kode_kategori"] => string(1) "1" ["judul_kategori"] => string (30) "RTD Juices"}}それはそのようになっているようですが、どうして私はそれを実行するのですか? –

+0

オブジェクトではない配列が返されたため、なぜそのメソッドが失敗したのですか? '$ cek-> num_rows()'を 'count($ check)'に置き換えると、意図した通りに動作するはずです。 –

+0

私はcount($ cek)を使用した後、これが表示されます:データベースエラーが発生しました エラー番号:1064 SQL構文にエラーがあります。右の構文が行1で '=' 1 ''の近くで使用するようにMariaDBサーバーのバージョンに対応するマニュアルを確認してください。 select * from produkwhere kode_kategori = '1' ファイル名:C:/ xampp/htdocs/genstore /システム/データベース/ DB_driver.php 行番号:691.修正方法はありますか? –

関連する問題