Codeigniter: передавайте в массив массив foreach модели — & gt; смотреть

Вот моя модель — я хочу назначить строки и эхо на странице просмотра, например

Моя модель:

public function dsduan(){

$data   =   array();
$q = $this->db->query("SELECT duan.id, duan.tenduan, duan.diachi, quan.quan, duan.tdt, duan.mdxd, duan.tt, duan.cdt, duan.dvql, duan.dvtk, duan.dvtc, duan.dvgs, duan.loai, duan.tienich, duan.noidung, duan.hinhanh FROM duan LEFT JOIN quan ON duan.quan=quan.id ORDER BY duan.tenduan ASC");

if ($q->num_rows == 1)
{
foreach ($q->result() as $row)
{
$data[]['id'] = $row->id;
$data[]['tenduan'] = $row->tenduan;
$data[]['diachi'] = $row->diachi;
$data[]['quan'] = $row->quan;
}
}

return $data;
}

Мой контроллер:

public function dsduan() {

$this->load->model('madmin');
$duan = $this->madmin->dsduan();
$this->load->view('danhsachduan', $duan);
}

Мой взгляд:

<td><?php echo $id; ?></td>
<td><?php echo $tenduan; ?></td>
<td><?php echo $diachi; ?></td>
<td><?php echo $quan; ?></td>

Как правильно передать массив моей модели в мой контроллер, чтобы я мог отражаться на моем виде?
Мой взгляд Ошибка:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: id

Filename: views/danhsachduan.php

Line Number: 44

0

Решение

В вашей модели вы используете двумерный массив:

$ data [] [‘id’] = $ row-> id;

затем в вашем контроллере вы передаете этот массив для просмотра.

поэтому, если вы хотите получить доступ к двумерному массиву в вашем представлении, вы должны использовать цикл foreach.

например, измените ваш массив в модели следующим образом:

$ data [‘id’] [] = $ row-> id;

и в вашем представлении доступа массив с помощью:

foreach($id as $res)
{
echo $res;
}
0

Другие решения

обновить свой взгляд, как это

<?php foreach($duan as $d) { ?>
<td><?php echo $d['id']; ?></td>
<td><?php echo $d['tenduan']; ?></td>
<td><?php echo $d['diachi']; ?></td>
<td><?php echo $d['quan']; ?></td>
<?php } ?>
0

public function dsduan(){

$data   =   array();
$q = $this->db->query("SELECT duan.id, duan.tenduan, duan.diachi, quan.quan, duan.tdt, duan.mdxd, duan.tt, duan.cdt, duan.dvql, duan.dvtk, duan.dvtc, duan.dvgs, duan.loai, duan.tienich, duan.noidung, duan.hinhanh FROM duan LEFT JOIN quan ON duan.quan=quan.id ORDER BY duan.tenduan ASC");

if ($q->num_rows == 1)
{
foreach ($q->result() as $row)
{
$data['id'] = $row->id;
$data['tenduan'] = $row->tenduan;
$data['diachi'] = $row->diachi;
$data['quan'] = $row->quan;
}
}

return $data;
}
0

В codeigniter, это использовать extract() метод связывания переменной с контроллера для просмотра. В этом случае вы можете сделать это так.

В модели

public function dsduan()
{

$data   =   array();
$q = $this->db->query("SELECT duan.id, duan.tenduan, duan.diachi, quan.quan, duan.tdt, duan.mdxd, duan.tt, duan.cdt, duan.dvql, duan.dvtk, duan.dvtc, duan.dvgs, duan.loai, duan.tienich, duan.noidung, duan.hinhanh FROM duan LEFT JOIN quan ON duan.quan=quan.id ORDER BY duan.tenduan ASC");

if ($q->num_rows)
{
$data = $q->result_array();
}

return $data;
}

В контроллере

public function dsduan()
{
$this->load->model('madmin');
$data['duan'] = $this->madmin->dsduan();
$this->load->view('danhsachduan', $data);

}

Ввиду, если ваш массив многомерный, вы можете использовать как это,

<?php foreach($duan as $d) { ?>
<td><?php echo $d['id']; ?></td>
<td><?php echo $d['tenduan']; ?></td>
<td><?php echo $d['diachi']; ?></td>
<td><?php echo $d['quan']; ?></td>
<?php } ?>

если ваш массив одномерный, вы можете использовать как это,

   <td><?php echo $duan['id']; ?></td>
<td><?php echo $duan['tenduan']; ?></td>
<td><?php echo $duan['diachi']; ?></td>
<td><?php echo $duan['quan']; ?></td>
0

Есть модифицированный ваш код. доброжелательно замещать ниже с вашим кодом.

Модель:

public function dsduan()
{
$q = $this->db->query("SELECT duan.id, duan.tenduan, duan.diachi, quan.quan, duan.tdt, duan.mdxd, duan.tt, duan.cdt, duan.dvql, duan.dvtk, duan.dvtc, duan.dvgs, duan.loai, duan.tienich, duan.noidung, duan.hinhanh FROM duan LEFT JOIN quan ON duan.quan=quan.id ORDER BY duan.tenduan ASC");

if($q->num_rows() > 0)
return $q->result();
return false;
}

контроллер:

public function dsduan()
{
$this->load->model('madmin');
$data['duan'] = $this->madmin->dsduan();
$this->load->view('danhsachduan', $data);
}

Посмотреть:

<?php foreach($duan as $d) { ?>
<td><?php echo $d->id; ?></td>
<td><?php echo $d->tenduan; ?></td>
<td><?php echo $d->diachi; ?></td>
<td><?php echo $d->quan; ?></td>
<?php } ?>
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector