[SOLUCIONADO] Consultas con paramentros

Hola amigos de la comunidad toba:
Siguiendo la linea de consultas, ahora la inquietud es por el tema de consultas con parámetros.Tengo un archivo.php de consultas y mi controlador de interfaz con los siguientes datos

Tengo entendido que en una consulta intervienen dos objetos el filtro y el cuadro, (adjunto una imagen con la interfaz)

Controlador interfaz
///////////////////////////////////////////

<?php require_once('consultas_php/consulta_dinamica.php'); require_once('consultas_php/consulta_estatica.php'); class ci_pantalla extends prueba_ci { protected $s__filtro; //----------------------------------------------------------------------------------- //---- dep_filtro ------------------------------------------------------------------- //----------------------------------------------------------------------------------- function conf__dep_filtro(prueba_ei_formulario $form) { if (isset($this->s__filtro)) { $form->set_datos($this->s__filtro); } } function evt__dep_filtro__filtrar($datos) { $this->s__filtro = $datos; } function evt__dep_filtro__cancelar() { unset($this->s__filtro); } //----------------------------------------------------------------------------------- //---- dep_cuadro ------------------------------------------------------------------- //----------------------------------------------------------------------------------- function conf__dep_cuadro(toba_ei_cuadro $cuadro) { if (isset($this->s__filtro)) { $datos = consulta_dinamica::get_juegos($this->s__filtro); } else { $datos = consulta_estatica::get_juegos(); } $cuadro->set_datos($datos); } } /////////////////////////////////////////// Archivos de consulta que se encuentran dentro de la carpeta proyecto/php/consultas_php Archivo consulta_dinamica.php ///////////////////////////////////////////////// <?php class consultas { static function get_juegos($filtro=null) { try{ $where = ''; if(isset($filtro)){ if (isset($filtro['nombre'])) { $nombre = quote("%{$filtro['nombre']}%"); $where = " WHERE nombre ILIKE $nombre"; } } $sql = "SELECT idjuego, nombre, descripcion FROM juegos $where"; return consultar_fuente($sql); }catch(toba_error $e){ toba::notificacion()->agregar('Error consulta dinamica'); toba::logger()->error($e->getMessage()); } } } ?>

/////////////////////////////////////////////

Archivo consulta_estatica.php
/////////////////////////////////////////////

<?php class consultas { static function get_juegos() { try{ $sql = 'SELECT idjuego, nombre, descripcion FROM juegos;'; return toba::db()->consultar($sql); }catch(toba_error $e){ toba::notificacion()->agregar('Error consulta estatica'); toba::logger()->error($e->getMessage()); } } } ?>

/////////////////////////////////////////////

La consulta estatica funciona, el problema es la dinamica, cuando intento ejecutar la dinamica, no me carga la pantalla. Si alguien tiene un ejemplo de esta operacion, yo la saque del toba refencia pero hay algo que no estoy viendo porque no sale igual. Cualquier sugerencia, sera bienvenida.Saludos


Hola Marcos,

el codigo pareciera estar bien a primera vista, generalmente cuando se devuelve una pantalla en blanco o sin contenido suele ser por un fatal error, en ese caso te convendria mirar el fuente que le llego al browser para descubrir cual es el inconveniente.

Asegurate de tener la directiva display_errors = On en php.ini para poder visualizar cual es el error, de lo contrario no vas a recibir nada en el cliente.

Saludos

gracias Ricardo, cambiando ese parametro pude rastrear el error.Fue el siguiente, lo comento por ahi le sirve a alguien:

require_once(‘consultas_php/consulta_dinamica.php’); (nombre del archivo y nombre de la carpeta)

aca estuvo el error:
$datos = clase_dinamica::get_juegos($this->s__filtro); (clase_dinamica se refiere al nombre de la clase del archivo consulta dinámica, yo use el nombre del archivo en lugar de la clase por eso no me funcionaba)

saludos

Tenes razon, se me paso ese detalle, asumi que la clase se llamaba igual que el archivo, que poco poder de observacion el mio.
Me alegro que lo hayas solucionado.

Saludos