【问题标题】:How to fetch values from two different tables in codeIgniter 3.x.x如何从 codeIgniter 3.x.x 中的两个不同表中获取值
【发布时间】:2017-02-21 03:49:27
【问题描述】:

我在这里提出了另一个查询,我被谷歌搜索但没有运气。现在我希望我能在这里得到解决方案。 我的问题是,

我有两个表格图像和类别。图片表如下所示。。 在此表中,类别 Image 和 Icon 都将仅存储在 image_name 列中,其中 icon 和 image 的 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";
                }
            ?>

我的视图表截图:

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

【问题讨论】:

  • 这是因为你的td图标中的变量和td image是一样的
  • 感谢您的快速回复。我得到了解决方案

标签: php mysql codeigniter


【解决方案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 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>

【讨论】:

    【解决方案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 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>
    

    【讨论】:

      【解决方案3】:

      将您的控制器更改为(您需要从图像表的第二个连接中选择图标为 im ,我们已将其命名为 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;
             }
      }
      

      那么在我们看来,我们需要将 icon 作为 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";
                      }
                  ?>
      

      【讨论】:

        【解决方案4】:

        更换你的控制器线:

        $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";
                }
        ?>
        

        【讨论】:

          猜你喜欢
          • 2021-11-11
          • 2019-12-05
          • 2021-06-21
          • 2012-12-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多