Php codeigniter中的未定义索引错误
我试图从数据库中获取两个值“电影总数”和“电影详细信息”。 对于电影总数,我返回php错误“undefined_index:num_films”。 请帮帮我 Sakila_控制Php codeigniter中的未定义索引错误,php,codeigniter,Php,Codeigniter,我试图从数据库中获取两个值“电影总数”和“电影详细信息”。 对于电影总数,我返回php错误“undefined_index:num_films”。 请帮帮我 Sakila_控制 <?php class Sakila_control extends CI_Controller { function display($offset=0) { $limit = 20; $this->load->model('films_model')
<?php
class Sakila_control extends CI_Controller
{
function display($offset=0)
{
$limit = 20;
$this->load->model('films_model');
$result = $this->films_model->search($limit,$offset);
$data['films']=$result['rows'];
$data['num_results']=$result['num_films'];
$this->load->view('films_view',$data);
}
}
电影
身份证件
标题
描述
类别
价格
长度
根据您的代码,您将在第一次查询之后返回值。因此,您的函数不会返回num\u films
。
class Films_model extends CI_Model
{
function search($limit,$offset)
{
$qu = $this->
db->select('FID,title,description,category,price,length,rating,actors')
->from('film_list')
->limit($limit,$offset);
//rows comes from controller
$ret['rows']= $qu->get()->result();
// return $ret;
$q = $this->db->select('COUNT(*) as count`, FALSE)
->from('film_list');
//num_rows comes from controller
$tmp= $q->get()->result();
$ret['num_films']=$tmp[0]->count;
return $ret;
}
}
在同一个中选中多个返回,首先您需要注释掉以下内容:
// return $ret;
然后,您需要用backticks修复另一个错误,因为return语句,您还没有得到这个错误
PHP中的Backticks将尝试从命令行运行代码
更改此项:
$q = $this->db->select(`COUNT(*) as count`, FALSE)
为此:
$q = $this->db->select('COUNT(*) as count', FALSE)
最终结果:
<?php
class Films_model extends CI_Model
{
function search($limit,$offset)
{
$qu = $this->
db->select('FID,title,description,category,price,length,rating,actors')
->from('film_list')
->limit($limit,$offset);
//rows comes from controller
$ret['rows']= $qu->get()->result();
$q = $this->db->select('COUNT(*) as count', FALSE)
->from('film_list');
//num_rows comes from controller
$tmp= $q->get()->result();
$ret['num_films']=$tmp[0]->count;
return $ret;
}
}
这个怎么样
在型号中
class Films_model extends CI_Model
{
function search($limit,$offset)
{
# Just pass all data to controller
$query = $this->db->query("SELECT * FROM film_list LIMIT $limit, $offset");
$result = $query->result_array(); # Changed
return $result;
}
}
在控制器中
class Sakila_control extends CI_Controller
{
function display()
{
$limit = 20;
$offset=0
$this->load->model('films_model');
$data['films'] = $this->films_model->search($limit,$offset);
$count = count($data['films']); # get count on here
$data['num_results'] = $count;
$this->load->view('films_view',$data);
}
}
在视图中
一切正常,由您决定最后在函数中返回
$tmp
的值是多少?你能var\u转储($tmp)代码>这样我们就可以看到它的内容了?当我把它放在函数的末尾时,它给出了另一个错误消息:未定义的属性:stdClass::$count Filename:models/films\u model.php行号:20@zeeshanhaider:我更新了我的答案,请再次检查。这是因为我在阅读了您的更新代码后删除了`````````,但这对我没有帮助。显示您的表。你可以在你的问题中更新它。当我把代码q=$this->db->select('COUNT(*)as COUNT',FALSE)->from('film_list');它给出了错误消息:无法访问空属性文件名:models/films\u model.php行号:15视图中的计数应为$num\u results
修改后,我收到错误消息:调用未定义的方法CI\u DB\u mysqli\u driver::result\u array()文件名:models/films_model.phpoopz wait smallmistake@zeeshanhaider马上查,伙计。它只返回0个胶片,只显示标题行
class Films_model extends CI_Model
{
function search($limit,$offset)
{
# Just pass all data to controller
$query = $this->db->query("SELECT * FROM film_list LIMIT $limit, $offset");
$result = $query->result_array(); # Changed
return $result;
}
}
class Sakila_control extends CI_Controller
{
function display()
{
$limit = 20;
$offset=0
$this->load->model('films_model');
$data['films'] = $this->films_model->search($limit,$offset);
$count = count($data['films']); # get count on here
$data['num_results'] = $count;
$this->load->view('films_view',$data);
}
}