为什么我无法检索给定ID的所有数据? PHP-笨

时间:2017-02-03 12:30:31

标签: php codeigniter

我正在尝试从给定ID号的数据库中检索数据。

控制器: 的 Usuario.php

  public function seleccionar_por_id_estado(){
    $id_estado = $this->input->post('id_estado');
    $result = $this->usuario_m->ver_datos_por_id($id_estado);
        $data['result'] = $result;
        $this->load->view('paginas/administrar_usuarios', $data);
    }

我的模特 的 usuario_m.php

public function ver_datos_por_id($id_estado){
    $condicion = "estado =" . "'". $id_estado ."'";
    $this->db->select('*');
    $this->db->from('usuarios');
    $this->db->where($condicion);
    $query = $this->db->get();
    return $query->result();
}

我的观点 的 administrar_usuarios.php

<form action="usuario/seleccionar_por_id_estado">
    <div class="content well">
            <label>Ver por:
                <select id="id_estado">
                    <option>Activo</option>
                    <option>Inactivo</option>
                </select>
                <?php
                foreach ($result as $u){?>
                    <?php echo $u->usuario;?> <br>
                <?php } ?>
            </form>

我得到的错误是没有定义var $结果。 请问你能帮帮我吗?谢谢!

3 个答案:

答案 0 :(得分:0)

在你的模型中。$this->db->where()内的条件就像这样

<?php
public function ver_datos_por_id($id_estado){

    $this->db->select('*');
    $this->db->from('usuarios');
    $this->db->where('estado',$id_estado);//set your condition  here
    $query = $this->db->get();
    return $query->result();
}

使用$this->db->get_where

$query = $this->db->get_where('usuarios',array('estado'=>$id_estado));
return $query->result();

有关详情,请参阅文档Codeigniter Query Builder

<强>更新

控制器:

 public function seleccionar_por_id_estado(){
    $id_estado = $this->input->post('id_estado');
    $data['result'] = $this->usuario_m->ver_datos_por_id($id_estado);
    $this->load->view('paginas/administrar_usuarios', $data);
    }

答案 1 :(得分:0)

我认为问题在于模型中的条件。 使用此查询

            <html>
            <head>
            <script>
            var myJSON = '{"godaddy.com":{"classkey":"domcno","status":"available"}}';
            var myObj = JSON.parse(myJSON);
            document.write(myObj["godaddy.com"].classkey);
            </script>
            </head>
            <body>
            <p></p>
            </body>
            </html>

答案 2 :(得分:-1)

首先,我要确定$id_estado不是空的。

另一个可能的问题是Codeigniter 真的希望您将类和文件名大写。我尝试将模型重命名为'Usuario_m.php',在模型Usuario_m中命名该类,然后通过调用$this->load->model('Usuario_m);加载它(看起来你忘了加载模型)然后最后调用模型功能如下:

$result = $this->Usuario_m->ver_datos_por_id($id_estado);

<强>更新 你的where()参数也是错误的。您在模型中的所有功能都可以是:

public function ver_datos_por_id($id_estado){ 
   return $this->db->get_where('usurarios', array('estado' =>$id_estado)->result(); 
} 

get_where函数结合了get()和where(),用第一个参数选择表(所以你不需要$ this-&gt; db-&gt; from('usuarios');)