[SOLUCIONADO] ERROR EN FILTRO

Hola que tal?

Les hago una consulta, que seguramente es algo basico que no estoy viendo.
Hice una operacion con un filtro. Y al filtrar me sale un error, que por lo que vi en otros mensajes es como que no tengo definido en el datos tabla la clave primaria.
Pero esta definida en cada tabla (son 3 tablas definidas en una relacion) y en la base de datos tambien esta la misma clave definida.
La version del Toba es la 2.7.9.

Haciendo un Dump del parametro del filtro muestra lo siguiente:
DUMPEO de VALORES
apellido [2]
condicion contiene
valor Ace

En donde Ace es el valor del Apellido digitado.

Les paso el error:


SQLSTATE: db_42601

CODIGO: 7

MENSAJE: ERROR: error de sintaxis en o cerca de «;» LINE 14: ; – toba_log: 3413 ^

SQL: SELECT nro_inscripcion, apellido, nombres, tipo_documento, nro_documento, cuil, lugar_nacimiento, escuela_procedencia FROM datos_personales as t_p WHERE Array ; – toba_log: 3413

Desde ya muchas gracias.-

Hola Sergio,

podrias pegarme el metodo en el que realizas la carga del componente de persistencia? . Si podes una captura de las columnas que relacionan las tablas (como para darme una mejor idea de la relacion).

Saludos

Hola Richard, como estas?

Te paso la carga del cuadro:

function conf__cuadro_alumnos($cuadro)
{
if (isset($this->s__filtro)) {
$datos = consultas::get_personas($this->s__filtro);
} else {
$datos = consultas::get_personas();
}
$cuadro->set_datos($datos);

Y la imagen de la relacion.
La columna que relaciona esas tablas es la misma que las otras dos.

Gracias!


RELACION.jpg

RELACION.png

Hola Sergio,

el inconveniente que tenes ahi me parece es como le pasas los datos al metodo, la variable “$this->s__filtro” mantiene mucho mas que solo el valor, con lo cual dependiendo lo que tengas dentro del metodo “get_personas”, puede quedar bien o no. Por otro lado, tenes varios metodos dentro del ei_filtro que te permiten obtener con mas facilidad las distintas cosas que necesitas para la SQL. Fijate aca que a partir del metodo “get_datos” tenes distintas opciones para obtener incluso el where pre-armado.

Y la imagen de la relacion. La columna que relaciona esas tablas es la misma que las otras dos.

Lo que veo complicado ahi, es que datos_personales tiene 2 padres (que pueden ser simultaneos o no), ahi podes llegar a tener algun inconveniente dependiendo como manejes los datos con los cursores. De todas maneras para la carga, la tabla “alumnos” sigue siendo padre unico y cargando la relacion mediante esa clave no deberias tener mayor inconveniente.

Saludos

Hola Richard.

No estara el error aca?

DUMPEO de VALORES
apellido [2]
condicion contiene
valor Ace

Que la variable tiene dos valores, la condicion y el valor, y no accede correctamente al valor?

Saludos.-

Otra cosa que veo.

Me sale lo siguiente:

Notice: Array to string conversion in C:\xampp\Toba\proyectos\escuela\php\operaciones_simples\consultas.php on line 20

Donde seria la linea 20 seria al final de la siguiente funcion en donde señalo comentando

<?php class consultas { function get_personas($where='true') { $sql = "SELECT nro_inscripcion, apellido, nombres, tipo_documento,http://foro.comunidad.siu.edu.ar/Themes/default/images/bbc/bold.gif nro_documento, cuil, lugar_nacimiento, escuela_procedencia FROM datos_personales as t_p WHERE $where "; return toba::db()->consultar($sql); } } ?>

Hola Sergio,

esto ultimo que mencionas es pasandole derecho la variable “$this->s__filtro” a get_personas o usaste alguno de los métodos que figuran en la documentacion?.

Fijate que si llamas al metodo sin parametros, te queda mal armada la SQL.

Saludos

Hola Richard, como estas

Me sale eso pasandole por parametros la veriable al metodo get_personas.

Que otra forma me recomendas que le pase el valor?

Saludos.-

Hola Sergio,

fijate aca que el filtro tiene varias maneras de recuperar los datos para la consulta, pasar la variable directamente te va a complicar. Es mejor pedirle a la dependencia alguno de los metodos que se lista ahí (depende como lo uses, es lo que vas a llamar).

Saludos

Hola Richard…

Perfecto. Anduvo todo bien ahora.

Muchas gracias!

Saludos.-