Как получить значения из двух разных таблиц в codeIgniter 3.x.x

У меня тут другой вопрос, меня за это гуглили, но не повезло. Теперь я надеюсь, что я получу решение здесь.
Моя проблема в том,

У меня есть две таблицы изображений и категорий. таблица изображений показана ниже.это таблица изображений .
В этой таблице категория 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";
}
?>

скриншот моей таблицы просмотра:

Таблица категорий UI Image

Здесь, в этой таблице, названия красных пятен должны отличаться, но они одинаковы.
Пожалуйста, помогите мне!
Заранее спасибо…

0

Решение

Попробуйте это:

Модификации Модификации

$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>
1

Измените свой контроллер как (вам нужно выбрать значок из второго соединения из таблицы изображений как 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;
}
}

Затем, на наш взгляд, нам нужно написать значок как 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";
}
?>
1

Замените свой контроллер Line:

$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";
}
?>
1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector