PHP - Devolver array de objetos

   
Vista:

Devolver array de objetos

Publicado por giuli (37 intervenciones) el 25/12/2013 22:29:39
Bueno gente tengo en un codigo html para mostrar todos los empleados que obtengo de una tabla, en un vector llamado aItems, este vector lo debo crear en empleado.php, un script con orientacion a objetos, que contiene la clase empleado.

empleado.php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
 
class empleado {
    private $_idEmpleado;
    private $_apellido;
    private $_legajo;
    private $_nombre;
 
    public function setIdEmpleado($idEmpleado){
        $this->_idEmpleado=$idEmpleado;
    }
    public function setApellido($apellido){
        $this->_apellido=$apellido;
    }
    public function setLegajo($legajo){
        $this->_legajo=$legajo;
    }
    public function setNombre($nombre){
        $this->_nombre=$nombre;
    }
    public function getIdEmpleado(){
        return $this->_idEmpleado;
    }
    public function getApellido(){
        return $this->_apellido;
    }
    public function getNombre(){
        return $this->_nombre;
    }
    public function getLegajo(){
        return $this->_legajo;
    }
    public function insertar(){
        $SQL="insert into Empleado values";
        $SQL.="'','$this->_apellido',$this->_legajo,'$this->_nombre'";
        $bd=new BaseDeDatos();
        $bd->query($SQL);
    }
    public function getAll(){
        $SQL="select * from empleado";
        $bd=new BaseDeDatos();
        $bd->query($SQL);
        $aItems=array();
 
        foreach ($bd->fetchObject() as $f){
            $aItems[]=$f;
        }
}
}
?>


Y el fichero html es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
 
// Incluyo la clase de base de datos
require_once $_SERVER['DOCUMENT_ROOT'] . '/sge/includes/php/BaseDeDatos.php';
 
// Incluyo la clase de empleado
require_once $_SERVER['DOCUMENT_ROOT'] . '/sge/empleado/includes/empleado.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/sge/empleado/includes/Empleado.php';
 
// Creo el objeto para luego obtener todos los empleados
$oEmpleado = new empleado();
 
// Obtengo el array con todos los objetos de empleado
$aItems = $oEmpleado->getAll();
 
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>SGE | Lista de Empleados</title>
	<link rel="stylesheet" type="text/css" href="/sge/includes/css/style.css" />
</head>
<body>
 
<div class="wrapper">
 
	<div class="background"></div>
 
	<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/sge/includes/php/header.php';?>
 
	<div class="main">
 
		<div class="buttons">
			<button type="button" onclick="document.location = '/sge/empleado/agregar.php'">Agregar Empleado</button>
		</div>
 
		<table>
 
			<tr>
				<th>ID</th>
				<th>APELLIDO</th>
				<th>NOMBRE</th>
				<th>LEGAJO</th>
				<th colspan="2">&nbsp;</th>
			</tr>
 
			<?php if ( count( $aItems ) == 0 ) { ?>
 
			<tr>
				<td colspan="6">No se han encontrado resultados</td>
			</tr>
 
			<?php } else { foreach ( $aItems as $item ) { ?>
			<tr>
 
				<td><?php echo $item->getIdEmpleado(); ?></td>
				<td><?php echo $item->getApellido(); ?></td>
				<td><?php echo $item->getNombre(); ?></td>
				<td><?php echo $item->getLegajo(); ?></td>
				<td><a class="icon ver" title="Ver/Editar" href="/sge/empleado/empleado.php?id=<?php echo $item->getIdEmpleado(); ?>"></a></td>
				<td><a class="icon eliminar" title="Eliminar" href="/sge/empleado/confirmar_eliminar.php?id=<?php echo $item->getIdEmpleado(); ?>"></a></td>
 
			</tr>
			<?php } } ?>
 
		</table>
 
		<div class="buttons">
			<button type="button" onclick="document.location = '/sge/aplicaciones'">Aplicaciones</button>
		</div>
 
	</div>
 
</div>
 
<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/sge/includes/php/footer.php';?>
 
</body>
</html>


Lo que necesito es obtener $aItems para mostrar todos lo empleados. Les agradezco su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Devolver array de objetos

Publicado por Elier (92 intervenciones) el 26/12/2013 15:11:54
1
2
3
4
5
6
7
8
9
10
11
12
public function getAll()
{
$SQL="select * from empleado";
$bd=new BaseDeDatos();
$bd->query($SQL);
$aItems=array();
foreach ($bd->fetchObject() as $f)
{
 $aItems[]=$f;
}
return  $aItems;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Devolver array de objetos

Publicado por Caruso (37 intervenciones) el 26/12/2013 16:45:41
Gracias por responder.

Me dice:Fatal error: Call to a member function getIdEmpleado() on a non-object in C:\xampp\htdocs\sge\empleado\lista.php on line 57
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Devolver array de objetos

Publicado por Elier (92 intervenciones) el 27/12/2013 17:06:12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public function getAll()
 {
 
$dbc = mysqli_connect("servidor", "usuario", "clave", "basedatos");
 
$SQL= "select * from empleado";
 
$result = mysqli_query($dbc, $SQL);
 
if ($result)
{
 
while ($obj = mysqli_fetch_object($result))
{
        $aItems[]=$obj;
}
 
mysqli_free_result($result);
 
}
 
mysqli_close($dbc);
 
return $aItems;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar