无法在codeigniter中获取连接的表值

时间:2018-02-23 19:24:30

标签: php codeigniter get fetch

我有两个表,一个是产品,另一个是类别。我将类别ID保存到帖子表类别字段。我已经加入了Post_model中的表,并且当我运行foreach()时能够在列表页面中获取类别名称,但是当我想在详细信息页面(slug页面)中获取它时它会出错。它在产品详细信息页面中显示未定义的变量名称。

Product_model

               <?php foreach ($cv_products as $post) : ?> 
                <div class="col-4">
                 <a class="all-link--pro" href="<?php echo site_url("product_view/".$post['slug'])?>"> //pro slug link  
                    <img class="img-fluid img-size" src="<?php echo base_url("assets/img/".$post['main_img'])?>">//pro img
                    <p><?php echo $post['title'] ?></p>//pro title
                    <p><?php echo $post['name'] ?></p>//pro cat
                    <p>Rs. <?php echo $post['price']; ?></p>//pro price
                 </a>      
                </div> 
              <?php endforeach; ?>

在视图

<a class="all-link--pro" href="<?php echo site_url("product_view/".$post['slug'])?>">

它工作得很好我得到了所有产品列表和相应的类别但是点击了slug链接或<p><?php echo $post['title'] ?></p> <p><?php echo $post['price'] ?></p> <p><?php echo $post['name'] ?></p> 我得到了除名字字段错误之外的所有

{{1}}

只想从products.category为quals的类别表中获取categories.name到类别id

1 个答案:

答案 0 :(得分:0)

因为你正在使用foreach,你必须将$ query更改为

8192


如果您想获得主题名称:

问题出在模型文件中 如果slug!== false则不会发生加入。

将if块后的get_products()更改为:

    $query= $this->db->get_where('products', array('slug' => $slug));
    return $query->result_array();

<强>更新

你得到了这个错误,因为你试图将foreach用于关联数组。

在slug页面中,你的结果是这样的:
$this->db->join('categories','categories.id = products.category'); $this->db->where(array('slug' => $slug)); $query = $this->db->get("products")->row_array(); return $query;
当你使用foreach时,每次循环时输出都是一个字符串。

最好为您的slug页面设置单独的视图,但如果您不打算这样做,请将['yourTitle',1000,'yourName']更改为:

$query