2017-02-03 1 views
0

Ich versuche, Daten aus der Datenbank mit einer ID-Nummer abrufen.Warum kann ich nicht alle Daten mit einer ID abrufen? php-codeigniter

Controller: 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); 
    } 

My Model 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(); 
} 

My View 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> 

Der Fehler, den ich bekomme, ist, dass das Ergebnis var $ nicht definiert ist. Könnten Sie mir bitte helfen? Vielen Dank!

+0

try Ihre Variable '$ result' Variable zu drucken, bevor die Ansicht laden, die Sie Ergebnis oder nicht bekommen. –

+0

versuchen, $ Ergebnis in Ihrem Controller zu drucken oder den Wert von $ Condicion in Ihrem Modell Echo –

Antwort

0

In Ihrem model.Set Zustand im Innern $this->db->where() wie diese

<?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(); 
} 

ODER Verwendung $this->db->get_where

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

Mehr siehe docs Codeigniter Query Builder

UPDATE

Controller:

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); 
    } 
+0

Danke, aber ich habe immer noch die "Undefinierte Variable: Ergebnis" :( –

+0

überprüfen, wo ist Ihre Ansicht .. Inside Unterordner paginas oder nicht? –

+0

und don Vergessen Sie nicht, Ihr Modell in den Controller zu laden. –

-1

Zuerst würde ich sicher sein, prüfen Sie, ob $id_estado nicht leer ist.

Ein anderes mögliches Problem ist, dass Codeigniter wirklich möchte, dass Sie Klassen- und Dateinamen groß schreiben. Ich würde versuchen, das Modell in 'Usuario_m.php' umzubenennen, die Klasse im Modell Usuario_m zu benennen und sie dann durch Aufruf von $this->load->model('Usuario_m); zu laden (sieht so aus, als ob Sie vergessen hätten, das Modell zu laden) und schließlich die Modellfunktion wie folgt aufrufen:

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

aktualisieren Ihre where() Parameter sind auch falsch. Ihre gesamte Funktion im Modell kann nur dies:

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

Die get_where Funktion kombiniert get() und wo(), um die Tabelle mit dem ersten Parameter wählt (so brauchen Sie nicht $ this-> db- > von ('usuarios');)

+0

Warum der Downvote? – Pacio

0

Ich denke, Problem ist in Ihrem wo Zustand im Modell. Verwendung dieser Abfrage

$query = $this->db->get_where('usuarios', array('column name of your table' => $condicion)); 
Verwandte Themen