使用Codeigniter无法显示数据和分页(错误PHP)

时间:2013-04-30 08:14:59

标签: php codeigniter

我在我的应用程序中使用Codeigniter而且我是新手。我从Codeigniter得到了一些错误。我对变量错误感到分心。

所以,这是我的模特:

class menuObjek extends CI_Model{
    public function __construct(){
        parent::__construct();

        $this->load->database();

    }

    public function getWisata($perPage,$uri){
        $this->db->select("namaObjWisata, deskripsiObjWisata");

        $this->db->from("objekwisata");
        $this->db->order_by("kategori","ASC");

        $getData = $this->db->get("", $perPage, $uri);

        if($getData->num_rows() > 0){
            return $getData->result_array();
        }else{
            return null;
        };
    }
}

控制器:

class showObjek extends CI_Controller {

private $data= array();



public function showObjek(){

    parent:: __construct();

    $this->load->model("menuobjek","", TRUE);
    $this->load->helper("url");
    $this->load->database();
    $this->load->library("pagination");

}

public function iniShow() {


    $this->db->select("*");
    $this->db->from("objekwisata");
    $getData = $this->db->get();
    $result = $getData->num_rows();

    //var $detail;

    $config["base_url"] = base_url()."index.php/showObjek/iniShow/";

    $config["total_rows"] = $result;
    $config["per_page"] = 10;
    $config["uri_segment"] = 3;

    $config["full_tag_open"] = "<p>";
    $config["full_tag_close"] = "</p>";

    $config["first_link"] = "&lt;&lt; First";
    $config["last_link"] = "Last &gt;&gt; ";


    $data["detail"] = $this->menuobjek->getWisata($config["per_page"], $this->uri->segment(3));

    $this->pagination->initialize($config);

    $data["pagination"]= $this->pagination->create_links();


    $this->load->view("menu_view", $data);
   }
}

最后一个是视图:

                   //if(isset($detail)){
                    foreach($detail as $rows){

                        echo"

                                <li>
                                    <a href=''>
                                        <img src='#' class='img-rounded' />
                                        <p class='judul_objek'>".$rows['namaObjWisata']."</p>
                                        <article>
                                            ".$rows['deskripsiObjWisata']."
                                        </article>

                                    </a>
                                </li>

                            ";
                    }
                //}

这显示了以下错误:

  

遇到PHP错误

     

严重性:注意

     

消息:未定义的变量:详细信息

     

文件名:views / menu_view.php

     

行号:124

     

遇到PHP错误

     

严重性:警告

     

消息:为foreach()提供的参数无效

     

文件名:views / menu_view.php

     

行号:124

我真的很困惑。我必须解决这个问题。拜托,有人帮助我。

谢谢。

3 个答案:

答案 0 :(得分:0)

您是否在网址中传递了第三段。因为如果你不是,那么在模型中它将导致null。所以foreach不会找到$ details。我认为你需要为第一页案例分配一个默认值。也就是说,如果uri段3不存在,则它是第一页,因此模型应该采用其他方式作为参数而不是URI sergment 3

答案 1 :(得分:0)

TRY

if(!preg_match('{^\d+$}',$uri)){ 
$this->db->limit($perPage); //first page
}else{
$this->db->limit($perPage, $uri);
}
$getData = $this->db->get();
//$getData = $this->db->get("", $perPage,$uri );

答案 2 :(得分:0)

objekwisata表可能不包含function getWisatadetail变量中返回空值的原因。并且数组包含foreach()循环的至少一个索引。请检查表中是否有记录。