提问人:user2531490 提问时间:7/3/2013 最后编辑:user2531490 更新时间:7/3/2013 访问量:417
Codeigniter Undefined Index 网上商店
Codeigniter Undefined Index Online Shop
问:
Codeigniter Undefined Index 网上商店:
出于某种原因,我得到了“未定义的索引:控制器中的分组。
我在下面添加了控制器和模型。
我也刚刚添加了getProduct()代码
/*Here is my model*/
function getProductsByGroup($limit,$group,$skip){
$data = array();
if ($limit == 0){
$limit=3;
}
$this->db->select('id,name,shortdesc,thumbnail');
$this->db->where('grouping', $group);
$this->db->where('status', 'active');
$this->db->where('id !=', ($skip));
$this->db->order_by('name','asc');
$this->db->limit($limit);
$Q = $this->db->get('products');
if ($Q->num_rows() > 0){
foreach ($Q->result_array() as $row){
$data[] = $row;
}
}
$Q->free_result();
return $data;
}
/*getProduct()*/
function getProduct($id){
$data = array();
$option = array('id' => $id);
/*pass the id and other options to the category*/
$Q = $this->db->get_where("categories",$option,1);
if ($Q ->num_rows() > 0){
$data = $Q->row_array();
}
$Q->free_result();
return $data;
}
/*This is my controller*/
public function product($id)
{
$product = $this->MProducts->getProduct($id);
if (!count($product))
{
redirect('welcome/index','refresh');
}
/* This is where the error is coming from*/
$data['grouplist'] = $this->MProducts->getProductsByGroup(3,$product['grouping'],$id);
$data['product'] = $product;
$data['title'] = "Claudia’s Kids | ". $product['name'];
$data['main'] = 'product';
$data['navlist'] = $this->MCats->getCategoriesNav();
$this->load->vars($data);
$this->load->view('template');
}
答:
0赞
Matt
7/3/2013
#1
将分组列添加到 getProductsByGroup 函数中的选择
$this->db->select('id,name,shortdesc,thumbnail, grouping');
错误指出未设置 $product['grouping']。如果查看 select 语句,可以看到您没有选择分组列。
评论
0赞
Bad Wolf
7/3/2013
在对 的调用中使用了 is。数据是从 提供的。$product['grouping']
getProductsByGroup()
getProducts()
0赞
user2531490
7/3/2013
解决。。但我必须承认我喜欢这个论坛:我在这里对类别表( $Q = $this->db->get_where(“categories”,$option,1);)而不是产品表运行查询。
0赞
M Khalid Junaid
7/3/2013
#2
当您调用任何未定义的变量或数组的任何未定义索引(如 )时,您会收到错误。错误指出命名中没有索引,因此您应该检查结果Undefined index: grouping
$product['grouping']
$product
grouping
$product = $this->MProducts->getProduct($id);
var_dump($product);
如果var_dump结果没有显示像分组这样的索引,请检查您的查询
function getProduct($id){
$data = array();
$option = array('id' => $id);
/*pass the id and other options to the category*/
$Q = $this->db->query("SELECT * FROM categories WHERE id= $id");
if ($Q ->num_rows() > 0){
$data = $Q->row_array();
}
$Q->free_result();
return $data;
}
并确保您的类别表具有列分组
评论
0赞
user2531490
7/3/2013
谢谢伙计。我现在已经解决了..我在这里对类别表( $Q = $this->db->get_where(“categories”,$option,1);)而不是产品表运行查询:( $Q = $this->db->get_where(“product”,$option,1);)
0赞
user2531490
7/3/2013
#3
解决。。但我必须承认我喜欢这个论坛:
我在这里使用类别表而不是产品表。
/*getProduct()*/
function getProduct($id){
$data = array();
$option = array('id' => $id);
/*pass the id and other options to the category*/
$Q = $this->db->get_where("categories",$option,1); i just changed this line to
$Q = $this->db->get_where("product",$option,1);
if ($Q ->num_rows() > 0){
$data = $Q->row_array();
}
$Q->free_result();
return $data;
}
上一个:未定义的索引 ...现有索引?
下一个:PHP登录问题
评论
getProduct()