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

Error al ejecutar una consulta

Estas en el tema de Error al ejecutar una consulta en el foro de CodeIgniter en Foros del Web. Hola, tengo una consulta que depende de una variable, ya vi la consulta en el editor y si bota datos, pero dentro del modelo me ...
  #1 (permalink)  
Antiguo 23/03/2016, 07:37
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 20 años, 11 meses
Puntos: 8
Error al ejecutar una consulta

Hola, tengo una consulta que depende de una variable, ya vi la consulta en el editor y si bota datos, pero dentro del modelo me sale el siguiente error: The query you submitted is not valid.

La función es esta:
Código PHP:
Ver original
  1. public function export_to_excel($fec, $gru)
  2. {
  3.     $fecha = $fec;
  4.     $sql = "";
  5.  
  6.     switch ($gru) {
  7.         case '1':
  8.             $sql = "SELECT
  9.                     A.codigo AS codigo,
  10.                     B.nombres AS nombres,
  11.                     B.apellidos AS apellidos,
  12.                     B.grado AS grado,
  13.                     B.seccion AS seccion,
  14.                     C.nombre AS entrada,
  15.                     D.nombre AS fondo,
  16.                     E.nombre AS postre
  17.                     FROM selcomidaspadres A
  18.                     INNER JOIN alumnos B ON A.hijo = B.codigo
  19.                     INNER JOIN comidas C ON A.entradas = C.codigo
  20.                     INNER JOIN comidas D ON A.fondos = D.codigo
  21.                     INNER JOIN comidas E ON A.postres = E.codigo
  22.                     WHERE A.fecha = '" . $fecha . "' AND (B.grado = 1 OR B.grado = 2)
  23.                     ORDER BY B.grado, B.seccion";
  24.             break;
  25.         case '2':
  26.             $sql = "SELECT
  27.                     A.codigo AS codigo,
  28.                     B.nombres AS nombres,
  29.                     B.apellidos AS apellidos,
  30.                     B.grado AS grado,
  31.                     B.seccion AS seccion,
  32.                     C.nombre AS entrada,
  33.                     D.nombre AS fondo,
  34.                     E.nombre AS postre
  35.                     FROM selcomidaspadres A
  36.                     INNER JOIN alumnos B ON A.hijo = B.codigo
  37.                     INNER JOIN comidas C ON A.entradas = C.codigo
  38.                     INNER JOIN comidas D ON A.fondos = D.codigo
  39.                     INNER JOIN comidas E ON A.postres = E.codigo
  40.                     WHERE A.fecha = '" . $fecha . "' AND (B.grado = 3 OR B.grado = 4 OR B.grado = 5)
  41.                     ORDER BY B.grado, B.seccion";
  42.             break;
  43.         case '3':
  44.             $sql = "SELECT
  45.                     A.codigo AS codigo,
  46.                     B.nombres AS nombres,
  47.                     B.apellidos AS apellidos,
  48.                     B.grado AS grado,
  49.                     B.seccion AS seccion,
  50.                     C.nombre AS entrada,
  51.                     D.nombre AS fondo,
  52.                     E.nombre AS postre
  53.                     FROM selcomidaspadres A
  54.                     INNER JOIN alumnos B ON A.hijo = B.codigo
  55.                     INNER JOIN comidas C ON A.entradas = C.codigo
  56.                     INNER JOIN comidas D ON A.fondos = D.codigo
  57.                     INNER JOIN comidas E ON A.postres = E.codigo
  58.                     WHERE A.fecha = '" . $fecha . "' AND (B.grado = 6 OR B.grado = 7)
  59.                     ORDER BY B.grado, B.seccion";
  60.             break;
  61.         case '4':
  62.             $sql = "SELECT
  63.                     A.codigo AS codigo,
  64.                     B.nombres AS nombres,
  65.                     B.apellidos AS apellidos,
  66.                     B.grado AS grado,
  67.                     B.seccion AS seccion,
  68.                     C.nombre AS entrada,
  69.                     D.nombre AS fondo,
  70.                     E.nombre AS postre
  71.                     FROM selcomidaspadres A
  72.                     INNER JOIN alumnos B ON A.hijo = B.codigo
  73.                     INNER JOIN comidas C ON A.entradas = C.codigo
  74.                     INNER JOIN comidas D ON A.fondos = D.codigo
  75.                     INNER JOIN comidas E ON A.postres = E.codigo
  76.                     WHERE A.fecha = '" . $fecha . "' AND (B.grado = 8 OR B.grado = 9)
  77.                     ORDER BY B.grado, B.seccion";
  78.             break;
  79.         case '5':
  80.             $sql = "SELECT
  81.                     A.codigo AS codigo,
  82.                     B.nombres AS nombres,
  83.                     B.apellidos AS apellidos,
  84.                     B.grado AS grado,
  85.                     B.seccion AS seccion,
  86.                     C.nombre AS entrada,
  87.                     D.nombre AS fondo,
  88.                     E.nombre AS postre
  89.                     FROM selcomidaspadres A
  90.                     INNER JOIN alumnos B ON A.hijo = B.codigo
  91.                     INNER JOIN comidas C ON A.entradas = C.codigo
  92.                     INNER JOIN comidas D ON A.fondos = D.codigo
  93.                     INNER JOIN comidas E ON A.postres = E.codigo
  94.                     WHERE A.fecha = '" . $fecha . "' AND (B.grado = 10 OR B.grado = 11)
  95.                     ORDER BY B.grado, B.seccion";
  96.             break;
  97.        
  98.         default:
  99.             break;
  100.     }
  101.  
  102.     $q = $this->db->query($sql);
  103.  
  104.     if ($q->num_rows() > 0) {
  105.         return $q->result();
  106.     }
  107.     else {
  108.         return false;
  109.     }
  110. }
y me señala la línea donde está: $q = $this->db->query($sql);

Por favo, denme una luz acerca de esto.

Muchas garcias,
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 20/04/2016, 01:09
 
Fecha de Ingreso: abril-2016
Ubicación: Valencia
Mensajes: 17
Antigüedad: 8 años
Puntos: 1
Respuesta: Error al ejecutar una consulta

[QUOTE=juandedios;4783684]Hola, tengo una consulta que depende de una variable, ya vi la consulta en el editor y si bota datos, pero dentro del modelo me sale el siguiente error: The query you submitted is not valid.

Así en principio el error esta claramente al decir al programa que ejecute la sentencia, no debería estas mal.

Quizas alguna de las igualdades no es correcta o algún campo se llama de forma diferente. Si imprimies la sentencia usando
Código PHP:
echo $this->db->last_query();exit; 
Y ejecutas en mysql funciona la sentencia¿?

Luego te recomendaría, más por ordenación de código que otra cosa es que dentro de los case asignes valor a dos sentencias del tipo $grado1 = x; $grado2 = y.

Y pases esos valores a la sentencia del mismo modo que haces con $fecha. Para evitar duplicar innecesariamente tantas lineas de código. Cuando más claro más fácil depurar.

P.D: Comprueba el formato fecha para que sea el que usa MySql aaa-mm-dd si es de typo date en la base de datos

Un Saludo

Etiquetas: Ninguno
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 13:35.