2017-02-21 73 views
0

我在这里提出了另一个查询,我是用它搜索的,但没有运气。现在我希望我能在这里得到解决方案。 我的问题是,如何从codeIgniter 3.x.x中的两个不同表中提取值

我有两个表格图像和类别。图像表如下所示。 this is images table。 在这个表格中,Image和Icon这两个类别将只存储在image_name列中,其中图标和图像的id将作为外键存储在其他表格中。

类别表如下所示。

所以在这里我的问题是,我想告诉所有与该类别的图像和类别图标的类别名称。 但是当我写模型查询时,它只提取图像而不提取图标。

我的模型查询:

public function getAllCatsForAdminPanel(){ 
     //extract($data); 

     $this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName'); 
     $this->db->from('categories'); 
     $this->db->where('categories.status =', 'a'); 
     $this->db->join('images', 'images.id = categories.cat_icon', 'left'); 
     $this->db->join('images as im', 'im.id = categories.cat_image', 'left'); 

     $query = $this->db->get(); 

     //$query = $this->db->get('categories'); 
     //print_r($query); 
     if($query->num_rows()>0){ 
     return $query->result(); 
     }else{ 
     return false; 
     } 
} 

我的控制器:

public function category(){ 
    logActivity(); 
    $cats_data['all_cats'] = $this->cat_model->getAllCatsForAdminPanel(); 
     //print_r($cats_data); 
    $this->load->view('admin/category', $cats_data); 

}//close category 

我的视图代码:

<?php 
      if(count($all_cats) > 0){ 
       //print_r($all_cats); 
       foreach($all_cats as $all_cat){ 
       ?> 
       <tr> 
       <td><?php echo ++$counter; ?></td> 
       <td><?php echo $all_cat->cat_name; ?></td> 
       <td><?php echo $all_cat->cat_dis_order; ?></td> 
       <td><?php echo $all_cat->imageName; ?></td> 
       <td><?php echo $all_cat->imageName; ?></td> 
       <td> 
       <a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a> 
       </td> 
       <td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td> 

       </tr> 
      <?php 
       } 
       } 
       else{ 
        echo "no records found"; 
       } 
      ?> 

我看来表的截图:

Category table UI Image

在此表中,发现的红色名称应该不同,但它们是相同的。 请帮我一把! 在此先感谢...

+0

那是因为你在TD图标变量是TD相同图片 –

+0

感谢您的快速响应。我得到了解决方案 –

回答

2

尝试了这一点:

模型修改

$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as iconName, im.image_name as imageName'); 

查看修改

<td><?php echo ++$counter; ?></td> 
<td><?php echo $all_cat->cat_name; ?></td> 
<td><?php echo $all_cat->cat_dis_order; ?></td> 
<td><?php echo $all_cat->imageName; ?></td> 
<td><?php echo $all_cat->iconName; ?></td> 
+0

感谢您的回答,您的回答节省了我的时间..非常感谢.. –

1

如果我没有记错的话,请更新下面的线,

在型号

$this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName, images.image_label as imageLabel'); 

看来,

<td><?php echo ++$counter; ?></td> 
<td><?php echo $all_cat->cat_name; ?></td> 
<td><?php echo $all_cat->cat_dis_order; ?></td> 
<td><?php echo $all_cat->imageName; ?></td> 
<td><?php echo $all_cat->imageLabel; ?></td> 
1

更改您的控制器(您需要选择图标从第二次加入图像表作为即时通讯,我们已将其命名为iconName)(请注意,我还没有测试过):

public function getAllCatsForAdminPanel(){ 
     //extract($data); 

     $this->db->select('categories.id AS cat_id, categories.cat_name AS cat_name, categories.display_order AS cat_dis_order, images.image_name as imageName,im.image_name as iconName'); 
     $this->db->from('categories'); 
     $this->db->where('categories.status =', 'a'); 
     $this->db->join('images', 'images.id = categories.cat_icon', 'left'); 
     $this->db->join('images as im', 'im.id = categories.cat_image', 'left'); 

     $query = $this->db->get(); 

     //$query = $this->db->get('categories'); 
     //print_r($query); 
     if($query->num_rows()>0){ 
     return $query->result(); 
     }else{ 
     return false; 
     } 
} 

然后在我们看来,我们需要编写图标,iconName为:

<?php 
      if(count($all_cats) > 0){ 
       //print_r($all_cats); 
       foreach($all_cats as $all_cat){ 
       ?> 
       <tr> 
       <td><?php echo ++$counter; ?></td> 
       <td><?php echo $all_cat->cat_name; ?></td> 
       <td><?php echo $all_cat->cat_dis_order; ?></td> 
       <td><?php echo $all_cat->imageName; ?></td> 
       <td><?php echo $all_cat->iconName; ?></td> 
       <td> 
       <a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a> 
       </td> 
       <td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td> 

       </tr> 
      <?php 
       } 
       } 
       else{ 
        echo "no records found"; 
       } 
      ?> 
+0

谢谢@Vikas ....你的回答是完美的,我得到了输出 –

1

更换控制器线路:

$this->db->select(' 
    categories.id AS cat_id, 
    categories.cat_name AS cat_name, 
    categories.display_order AS cat_dis_order, 
    images.image_name as imageName'); 

$this->db->select(' 
    categories.id AS cat_id, 
    categories.cat_name AS cat_name, 
    categories.display_order AS cat_dis_order, 
    images.image_name AS cat_icon, 
    im.image_name AS cat_image'); 

在查看使用此代码:

<?php 
    if(count($all_cats) > 0){ 
     //print_r($all_cats); 
     foreach($all_cats as $all_cat){ 
     ?> 
     <tr> 
     <td><?php echo ++$counter; ?></td> 
     <td><?php echo $all_cat->cat_name; ?></td> 
     <td><?php echo $all_cat->cat_dis_order; ?></td> 
     <td><?php echo $all_cat->cat_image; ?></td> 
     <td><?php echo $all_cat->cat_icon; ?></td> 
     <td> 
     <a href="<?php echo base_url('admin/admin/modifyCategory/'.$all_cat->cat_id); ?>"><i class="fa fa-pencil" aria-hidden="true"></i></a> 
     </td> 
     <td><button class = "btn btn-danger" onclick="deleteCategory(<?php echo $all_cat->cat_id; ?>);"><i class="fa fa-trash" aria-hidden="true"></i></button></td> 

     </tr> 
    <?php 
     } 
     } 
     else{ 
      echo "no records found"; 
     } 
?> 
相关问题