Foros del Web » Programando para Internet » PHP » Zend »

Problema con zend framewor, urgente

Estas en el tema de Problema con zend framewor, urgente en el foro de Zend en Foros del Web. Como esta, he estado utilizando zend framework y mysql para un proyecto, he utilizado la clase Zend_Db_Statement_Pdo, para realizar las consultas y transacciones a la ...
  #1 (permalink)  
Antiguo 06/08/2010, 00:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Problema con zend framewor, urgente

Como esta, he estado utilizando zend framework y mysql para un proyecto, he utilizado la clase Zend_Db_Statement_Pdo, para realizar las consultas y transacciones a la base de datos. Lo que son transacciones funcionan muy bien, pero no he podido mostrar el retorno de una consulta en la vista, les agradeceria mucho que me pudieran ayudar con este problema, aqui les dejo el codigo tanto del controlador como de la vista, no se muy bien cual sea el problema, ojala ustedes lo puedan encontrar.

$options = array(Zend_Db::AUTO_QUOTE_IDENTIFIERS => false);
$params = array('host'=> '127.0.0.1',
'username'=>'root',
'password' => '',
'dbname'=>'calidad',
'options'=> $options);
$db = Zend_Db::factory('Pdo_Mysql', $params);
if ($valor1 == 'nombre')
{
$valor2 = '%'.$valor2.'%';
$sql = "select emp_foto_empleado,emp_nombre,emp_apellido,emp_cedu la from empleado
where emp_nombre like :p1";
$statement = new Zend_Db_Statement_Pdo($db,$sql);
$statement->bindParam(':p1',$valor2);
$statement->execute();
$retorno = array();
$this->view->empleado = $statement->fetch();
$this->render();
echo $statement->rowCount();

Este seria el controlador .



<table class = "tan" border = "0" cellspacing= "30">
<tr>
<th>FOTO</th>
<th>NOMBRE</th>
<th>APELLIDO</th>
<th>&nbsp;</th>
</tr>
<?php foreach($this->empleado as $statement) : ?>
<tr>
<td><?php echo $this->escape($statement->emp_foto_empleado);?></td>
<td><?php echo $this->escape($statement->emp_nombre);?></td>
<td><?php echo $this->escape($statement->emp_apellido);?></td>
<td><?php echo $this->escape($statement->emp_cedula);?></td>
</td>
</tr>
<?php endforeach; ?>

Y esta la vista.


Les agradeceria mucho su ayuda.
  #2 (permalink)  
Antiguo 06/08/2010, 08:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con zend framewor, urgente

Usa $statement->fetchAll para que te regrese un array de objetos.

Saludos.
  #3 (permalink)  
Antiguo 06/08/2010, 10:21
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

Asi tambien lo hice , utilizando $statement->fetchAll() y aun asi no me devuelve nada, y yo se que la consulta me retorna ya que utilizando $statement->rowCount(), me devuelve la cantidad de filas devueltas, me muestra que hay filas retornadas, pero en si la consulta no se puede ver
  #4 (permalink)  
Antiguo 06/08/2010, 11:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con zend framewor, urgente

Prueba asignarlo a una variable y ver si te da los datos:
Código PHP:
Ver original
  1. $employees = $statement->fetchAll();
  2. var_dump($employees);
  3. $this->view->empleados = $employees;

Saludos.
  #5 (permalink)  
Antiguo 06/08/2010, 14:54
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

Muchas gracias por tu aporte, ya me muestra el resultado:

array(1) { [0]=> array(4) { ["emp_foto_empleado"]=> NULL ["emp_nombre"]=> string(10) "juan david" ["emp_apellido"]=> string(14) "torres salazar" ["emp_cedula"]=> string(8) "16078124" } }

Ahora tengo otra pregunta, como hago para que ese resultado sea mostrado correctamente en la vista, el codigo de la vista lo deje igual como se muestra en el ejemplo ya expuesto.
  #6 (permalink)  
Antiguo 06/08/2010, 14:54
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

O me faltara alguna configuracion del zend para que me muestre el resultado en la vista??????
  #7 (permalink)  
Antiguo 06/08/2010, 20:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con zend framewor, urgente

Pues con hacer el foreach ($this->empleados as $empleado) { } debería de bastar, muestra como dejaste tu controller y view.

Saludos.
  #8 (permalink)  
Antiguo 06/08/2010, 22:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

Muchas gracias por tu aporte, al fin pude retornar la consulta de manera exitosa, asi quedo el controlador y la vista:


$valor2 = '%'.$valor2.'%';
$sql = "select emp_foto_empleado,emp_nombre,emp_apellido,emp_cedu la from empleados where emp_nombre like :p1";
$statement = new Zend_Db_Statement_Pdo($db,$sql);
$statement->bindParam(':p1',$valor2);
$statement->execute();
// $retorno = $statement->fetchAll();
// var_dump($retorno);
$this->view->empleados = $statement->fetchAll();

Este seria el controlador





<table class = "tan" border = "0" cellspacing= "30">
<tr>
<th>FOTO</th>
<th>NOMBRE</th>
<th>APELLIDO</th>
<th>&nbsp;</th>
</tr>
<?php foreach ($this->empleados as $empleado) : ?>
<tr>
<td><?php echo $this->escape($empleado['emp_foto_empleado']);?></td>
<td><?php echo $this->escape($empleado['emp_nombre']);?></td>
<td><?php echo $this->escape($empleado['emp_apellido']);?></td>
<td><?php echo $this->escape($empleado['emp_cedula']);?></td>
</td>
</tr>
<?php endforeach; ?>


Y esta la vista.


Al principio puso algo de problema porque en la vista retornaba objetos, entonces lo cambie retornando de manera asociativa y funciono perfectamente, aunque yo se que se podia cambiar la forma de retorno con fetch mode pero asi quedo perfecto, te agradezco mucho tu ayuda.
  #9 (permalink)  
Antiguo 06/08/2010, 23:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

Ahora tengo una pregunta, como hago yo para pasar una variable de un formulario a otro, ven me explico mejor, el usuario quiere ingresar unos datos, cuando el usuario ingrese de forma correcta los datos el sistema lo pasara automaticamente a otro formulario y llevara una variable que tomare con un get, como hago eso en zend framework ???????.

Te agradeceria mucho tu ayuda????????????
  #10 (permalink)  
Antiguo 06/08/2010, 23:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con zend framewor, urgente

Usa $this->_getParam('el_nombre_de_la_variable'); para obtener el valor en el controlador.

Saludos.
  #11 (permalink)  
Antiguo 06/08/2010, 23:58
 
Fecha de Ingreso: agosto-2010
Mensajes: 27
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con zend framewor, urgente

ok, muchas gracias por tu ayuda

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:09.