【问题标题】:unable to display query results in a view codeigniter无法在视图 codeigniter 中显示查询结果
【发布时间】:2018-09-26 12:17:09
【问题描述】:

我正在尝试在动态表中显示我的数据库中的结果,我正在使用 codeigniter:

这是我的模型:

class Cliente_model extends CI_Model {

function __construct() {
    parent::__construct();
}

public function obtenerDatos() {

    $data = $this->db->get('cliente');
    return $data;
}

这是我的控制器:

class Cliente extends CI_Controller {

public function __construct()
    {
            parent::__construct();
            $this->load->model('cliente_model');
    }


public function index()
    {   
        $tabla = $this->cliente_model->obtenerDatos();
        $data = $tabla->result_array();
        print_r($data); //This works
        $this->load->view('cliente_view',$data);
    }
}

这是我视图的表格部分:

<table class="table table-sm table-striped table-bordered table-hover">
    <thead class="thead-dark">
        <tr>
            <th scope="col">Cliente</th>
            <th hidden scope="col">ID</th>
            <th scope="col">Correo 1</th>
            <th scope="col">Correo 2</th>
            <th scope="col">Correo 3</th>
            <th scope="col">Correo 4</th>
            <th scope="col">Correo 5</th>
            <th scope="col">Correo 6</th>
            <th scope="col">Correo 7</th>
            <th scope="col">Correo 8</th>
            <th scope="col">Status</th>
            <th scope="col">Acción</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($data as $fila): ?>
        <tr>
            <th scope="row"><?php echo $fila['nombreCliente'];?></td>
            <td hidden><?php echo $fila['idCliente'];?></td>
            <td><?php echo $fila['correoCliente1'];?></td>
            <td><?php echo $fila['correoCliente2'];?></td>
            <td><?php echo $fila['correoCliente3'];?></td>
            <td><?php echo $fila['correoCliente4'];?></td>
            <td><?php echo $fila['correoCliente5'];?></td>
            <td><?php echo $fila['correoCliente6'];?></td>
            <td><?php echo $fila['correoCliente7'];?></td>
            <td><?php echo $fila['correoCliente8'];?></td>
            <?php if ($fila['statusCliente'] == 'Activo') { ?>
            <td><span class="badge badge-pill badge-success">Activo</span></td>
            <?php } else { ?>
            <td><span class="badge badge-pill badge-warning">Inactivo</span></td> 
            <?php } ?>             
            <td><a href="#" title=""><span class="badge badge-pill badge-warning">Editar </span><img src="../imagenes/glyphicons/png/glyphicons-151-edit.png" alt="" title=""></a></a></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>

当我在控制器中调用 print_r 函数时,$data 变量会显示我想要传递给视图的所有记录,但是当我发送到视图时,我会在 foreach 函数中给出这些错误:

错误 1:

遇到 PHP 错误
严重性:通知

消息:未定义变量:数据
文件名:views/cliente_view.php

行号:44

回溯:

文件:C:\AppServ\www\CariLMS\application\views\cliente_view.php
线路:44
函数:_error_handler

文件:C:\AppServ\www\CariLMS\application\controllers\Cliente.php
线路:17
功能:查看

文件:C:\AppServ\www\CariLMS\index.php
线路:315
函数:require_once

错误 2:

遇到 PHP 错误
严重性:警告

消息:为 foreach() 提供的参数无效

文件名:views/cliente_view.php

行号:44

回溯:

文件:C:\AppServ\www\CariLMS\application\views\cliente_view.php
线路:44
函数:_error_handler

文件:C:\AppServ\www\CariLMS\application\controllers\Cliente.php
线路:17
功能:查看

文件:C:\AppServ\www\CariLMS\index.php
线路:315
函数:require_once

你知道为什么不工作吗?

【问题讨论】:

  • 这是第 44 行:
  • print_r($data); // This works - 告诉我们结果是什么。
  • Array ( [0] => Array ( [idCliente] => 1 [nombreCliente] => Rassini [correoCliente1] => pahoran_01@hotmail.com [correoCliente2] => [correoCliente3] => [ correoCliente4] => [correoCliente5] => [correoCliente6] => [correoCliente7] => [correoCliente8] => [statusCliente] => Activo ) [1] => 数组 ( [idCliente] => 2 [nombreCliente] => Rassini 3 [correoCliente1] => pahoran_01@gmail.com [correoCliente2] => pahoranalanis@gmail.com [correoCliente3] => [correoCliente4] => [correoCliente5] => [correoCliente6] => [correoCliente7] => [correoCliente8] = > [statusCliente] => 不活跃 ) )
  • 请编辑您的问题以包含所有信息。它在 cmets 中非常难以阅读。

标签: php mysql codeigniter


【解决方案1】:

把这个写在你的模型函数中:

$query = $this->db->get('cliente');
$data = $query->result_array();
return $data;

这在你的控制器中:

$data['client']= $this->cliente_model->obtenerDatos();
$this->load->view('cliente_view',$data);

然后将其添加到您的视图中:

<?php if ($client): foreach($client as $fila):?>
<td><?php echo $fila['correoCliente1'];?></td> 

等等……

如您所见,$data['client'] 现在保存着您的数据库信息,您可以通过循环访问视图中的关联数组来读取它。有关查询生成器类 here 的更多信息。

【讨论】:

    【解决方案2】:

    如果您使用数据数组调用视图,则提供的数组必须是关联数组,它使用变量名作为键,将其值作为变量值。示例:

    //Controller
    $data = [];
    $data['var1'] = true;
    $data['var2'] = 'This is a string value';
    $this->load->view('cliente_view',$data);
    

    现在,您可以在视图中调用变量 $var1$var2,因为它们是 data 数组中的键

    //View
    if ($var1)
        echo $var2;
    else
        echo 'false';
    

    因此,您的问题的解决方案是将变量名称 'data' 作为键添加到您提供的数组中:

    $data = ['data' => $data];
    $this->load->view('cliente_view',$data);
    

    之后,您可以在视图中使用变量$data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多