Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/10/2010, 16:10
Avatar de lair
lair
 
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 4 meses
Puntos: 46
Respuesta: Error de sintaxis??

la consulta genera TODA de manera dinamica, te paso la parte en la que se agregan los like, si necesitas mas me avisas

Código PHP:
Ver original
  1. foreach($campos as $tablas => $fields){
  2.             foreach($fields as $key => $campo){
  3.                 /*
  4.                  * Concatena cada uno de los campos seleccionados,
  5.                  * con la notacion de TABLA.CAMPO
  6.                  */
  7.                 $query['fields'].="
  8.                 $tablas.$campo,";
  9.                
  10.                 /*
  11.                  * Mientras se extraen los campos a mostrar en la consulta
  12.                  * se forman las condiciones dentro de la clausula WHERE
  13.                  */
  14.                 $query['where'].="
  15.                 $tablas.$campo like(\"%$buscar%\") or";
  16.                 $wr=true; //wr es simplemente un indicador si se formo el where si no tienen ninguna condicion agrego un where 1=1
  17.             }
  18.         }

espero se entienda.

les explico un poco. a esta funcion llegan dos parametros, el primero es un arreglo con los campos precisamente la variable $campos, esta tiene la siguiente estructura.
Código PHP:
Ver original
  1. (
  2.     [organizaciones] => Array
  3.         (
  4.             [organizacion] => organizacion
  5.         )
  6.  
  7.     [sectores] => Array
  8.         (
  9.             [sector] => sector
  10.         )
  11.  
  12.     [giros] => Array
  13.         (
  14.             [giro] => giro
  15.         )
  16.  
  17.     [tamanos] => Array
  18.         (
  19.             [tamano] => tamano
  20.         )
  21.  
  22. )
con esto en esos dos foreach lo que hago es crear la lista de campos que se solicutan y al mismo tiempo colocar las condiciones del where, al finalme queda la consulta con la que extraigo los registros.

el problema viene cuando le agrego el order by para esto lo hago con una vriable de sesion, ya que el orden debe ser "anidado", es decir,
ordenar por campo1, campo2. es en este momento que me marca el error de sintaxis que menciono.

Última edición por lair; 18/10/2010 a las 18:45