No.
Estoy hablando de la consulta en SQL, que es lo que MySQL recibe.
Más allá de que la creación dinámica de las sentencias puede plantear problemas, la principal fuente de error que veo, luego de estructurar el SQL se ven errores de construcción (simples, pero evidentes):
Código SQL:
Ver originalSELECT
COUNT(acciones.IdAccion)AS total ,
SUM(cursos.precio) AS ventas
FROM
accion_alumno,
acciones,
cursos,
alumnos,
clientes,
usuarios
WHERE
clientes.IdUsuario=usuarios.IdUsuario
AND clientes.IdCliente=alumnos.IdCliente
AND accion_alumno.IdAlumno=alumnos.IdAlumno
AND accion_alumno.IdAccion=acciones.IdAccion
AND acciones.IdCurso=cursos.IdCurso
AND '$filtros' -- Esto está mal
Esto también tiene errores:
Código SQL:
Ver originalSELECT
cursos.*,
alumnos.nombre,
alumnos.ap1,
alumnos.ap2,
clientes.entidad,
accion_alumno.
*,usuarios.nombre AS com,
clientes.provincia,
acciones.*,
accion_alumno.estado AS estado1,
accion_alumno.regalo AS regalo2,
usuarios.ap1 AS com1 ,
usuarios.IdParent,
usuarios.IdPerfil
FROM
accion_alumno,
acciones,
cursos,
alumnos,
clientes,
usuarios
WHERE
clientes.IdUsuario=usuarios.IdUsuario
AND clientes.IdCliente=alumnos.IdCliente
AND accion_alumno.IdAlumno=alumnos.IdAlumno
AND accion_alumno.IdAccion=acciones.IdAccion
AND acciones.IdCurso=cursos.IdCurso
AND '$filtros' -- Esto esta mal.
ORDER BY '$orden' -- Esto está mal.
LIMIT $reg1,$tampag
En principio el error que se ve es simple: lo que agregas luego como condiciones adicionales queda encerrado entre apóstrofos y es interpretado por MySQL como una cadena de texto.
Si además de eso, dentro de esa cadena de texto hay apóstrofos, se produce una interrupción multiple de la misma, pudiendo quedar mal construida.
es decir, el resultado podría ser sencillamente algo como:
Código SQL:
Ver originalAND 'usuario.id='3256' AND alumno.alimno_id='245''
Como puedes ver, la estructura SQL queda completamente mal construida.
Además, estás poniendo entre apostrofos también lo que va en el ORDER BY, lo que s un error, porque esa cláusula espera recibir o nombres de campos, o bien la posicion de la columna a usar de ordenamiento... niguna de las cosa que en realida recibe,.
Obviamente todo eso sería muy fácil de ver al instante, si al menos hicieras lo que te pedí: Postear la consulta creada por el script y que envías a ejecutar... Cosa que no has hecho.