Jump to content


how to create a model relationing three tables?

tables relation

  • Please log in to reply
1 reply to this topic

#1 Marcos Cabrera

Marcos Cabrera

    Newbie

  • Members
  • Pip
  • 2 posts

Posted 09 September 2013 - 05:34 PM

tengo 3 tablas:

1er tabla - reparaciones con id primary key= reparacion_id y foreign key = equipo_id

 

2da tabla - equipos con id primary key = equipo_id y foreign key= cliente_id

 

3er tabla - clientes con id primary key= cliente_id

 

quiero relacionar estas 3 tablas porque solo quiero mostrar el nombre del cliente sin que modifique nada en la bd

 

 

 

i have three tables:

1st table - reparaciones with id primary key= reparacion_id y foreign key = equipo_id

 

2nd table - equipos with id primary key = equipo_id y foreign key= cliente_id

 

3rd table - clientes with id primary key= cliente_id

 

 

i want to relation this 3 tables because i want to show the name of client without modifying anything in the db

 

tablas.jpg

 

programa.png

 

CODIGO.png

 

thanks



#2 Marcos Cabrera

Marcos Cabrera

    Newbie

  • Members
  • Pip
  • 2 posts

Posted 12 September 2013 - 04:53 PM

solve the problem with this post:http://bit.ly/1en6ToD

the resulting code is this:

public function reparaciones_management()
	{
		try{
			$crud = new grocery_CRUD();
			$crud->set_theme('flexigrid');
			$crud->set_table('reparaciones');
			$crud->set_subject('reparaciones');
			$crud->required_fields('equipo_id','empleado_id','estado');
		    $crud->set_relation('equipo_id','equipos','{num_serie} tipo: {tipo} ');
			$crud->set_relation('empleado_id','empleados','nombres');
			$crud->field_type('detalles', 'text');
			$crud->columns('reparacion_id','equipo_id','empleado_id','fecha_ingreso','estado','detalles','nombres cliente');
			$crud->callback_column('nombres cliente',array($this,'getNombresClientes'));
			$output = $crud->render();
			$this->_reparacion_output($output);
			
		}catch(Exception $e){
			show_error($e->getMessage().' --- '.$e->getTraceAsString());
		}
	}
	
	function getNombresClientes($primary_key,$row) {
        $sql = "SELECT nombres
				FROM clientes
				WHERE cliente_id
				IN (
				SELECT cliente_id
				FROM equipos
				INNER JOIN reparaciones ON reparaciones.equipo_id = equipos.equipo_id where equipos.equipo_id=$row->equipo_id)";
        $result = $this->db->query($sql)->row();
        $title = $result->nombres;
        		
        return $title;
}






Also tagged with one or more of these keywords: tables, relation

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users