Foros del Web » Programando para Internet » PHP »

error al generar .csv de descarga: syntax to use near '' at line 1

Estas en el tema de error al generar .csv de descarga: syntax to use near '' at line 1 en el foro de PHP en Foros del Web. hola estoy generando un fichero de descarga .csv al que vuelvo una consulta sql que carga los alumnos que se agrupan en aulas, que pertenecen ...
  #1 (permalink)  
Antiguo 23/05/2011, 16:02
 
Fecha de Ingreso: diciembre-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
error al generar .csv de descarga: syntax to use near '' at line 1

hola

estoy generando un fichero de descarga .csv al que vuelvo una consulta sql que carga los alumnos que se agrupan en aulas, que pertenecen a escuelas.

la consulta se monta en funcion de los parametros que selecciona el usuarion en un formulario previo.

el error que recibo al ejecutar este codigo es:

check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

sin embargo ejecuto las consultas sql en phpmyadmin y corren sin problemas.

por mas vueltas que le doy, no logro ver donde esta el error. he rehecho varias veces las consultas sql por que parece que es como si faltara alguna comilla, pero no hay manera de que funcione

cualqueir ayuda sera bienvenida. muchas gracias

Y aqui les dejo el codigo fuente:

$separador=";";
$valores="";
// redirect output to client browser


header('Content-Type: application/text');
header('Content-Disposition: attachment;filename="informe_alumnos.csv"');


//recepcion de variables

if (isset($_GET[escuela])&&($_GET[escuela]!="")) {
$escuela_seleccionada=$_GET[escuela];
}else {
$escuela_seleccionada=0;
}



if (isset($_GET[estado])) {
switch ($_GET[estado]){

case "":
$estado="(0, 1, 2, 3)";
break;

case 0:
$estado="(0)";
break;

case 1:
$estado="(1)";
break;

case 2:
$estado="(2)";
break;

case 3:
$estado="(3)";
break;
}
}



if ($escuela_seleccionada==0) {
$cabecera="LISTADO ALUMNOS TODAS LAS ESCUELAS";
}else {
echo $sql_escuelas="select * from escuelas where id_escuela=".$escuela_seleccionada;
$tabla=mysql_query($sql_escuelas,$conexion);
$escuela=mysql_fetch_array($tabla);
$cabecera="LISTADO ALUMNOS\n\nEscuela: ".addslashes($escuela[localidad]);
}

$cabecera.="\nNombre Alumno;Escuela;Aula;Estado;Notas;\n";


$buscando_alumnos=0;
$buscando_escuelas=0;
$sql="select * from alumnos";

if(isset($_GET[escuela])&&($_GET[escuela]!="")){
$sql.=", aula where alumnos.id_aula=aula.id_aula and aula.id_escuela=$_GET[escuela]";
$buscando_escuela=1;
}

if(isset($_GET[nombre_alumno])&&($_GET[nombre_alumno]!="")){
if ($buscando_escuela==0){
$sql.=" where alumnos.nombre like '%".$_GET[nombre_alumno]."%' or alumnos.apellidos like '%".$_GET[nombre_alumno]."%' ";
}

if ($buscando_escuela==1){
$sql.=" and alumnos.nombre like '%".$_GET[nombre_alumno]."%' or alumnos.apellidos like '%".$_GET[nombre_alumno]."%' ";
}
$buscando_alumnos=1;
}

if ((isset($_GET[estado])) && (($_GET[estado])!="")) {

if(($buscando_alumnos==1)||($buscando_escuela==1)) {
$sql.=" and alumnos.archivado in ".$estado;
}

if(($buscando_alumnos==0)&&($buscando_escuela==0)) {
$sql.=" where alumnos.archivado in ".$estado;
}
}

echo $sql;

$tabla_alumnos=mysql_query($sql,$conexion) or die("error ".$sql);
while($datos_alumnos=mysql_fetch_array($tabla_alum nos)){
$valores.=$datos_alumnos[nombre]." ".$datos_alumnos[apellidos].";".devuelve_estado($datos_alumnos[archivado]).";".muestra_aula_alumno($datos_alumno[id_alumno]).";"."".";"."".";".$importe_positivo.";"."\n";
}

//fin de seleccion de ayudas para el periodo dado


$valores.="\n\n;;;;;;;;;";

echo $cabecera.$valores;
  #2 (permalink)  
Antiguo 23/05/2011, 17:25
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 7 meses
Puntos: 528
Respuesta: error al generar .csv de descarga: syntax to use near '' at line 1

Si haces un echo mysql_error(); quizá veas mejor donde está el fallo.
por otra parte, en vez de hacer la consulta, imprime para ver si efectivamente está mal.
en vez de:
$tabla_alumnos=mysql_query($sql,$conexion);
haz
echo $sql;

y observa si realmente la consulta está bien escrita.
  #3 (permalink)  
Antiguo 24/05/2011, 12:55
 
Fecha de Ingreso: diciembre-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Respuesta: error al generar .csv de descarga: syntax to use near '' at line 1

si te fijas bien, casi al final tengo puesto el echo $sql para ver la consulta, y tambien el die error, para ver que es lo que pasa.

gracias a eso obtengo el mensaje que puse en titulo del post: syntax error en your sql query near '' at line 1.

cojo la consulta que me suelta el echo, y las paso por phpmyadmin y las ejecuta sin problemas. he puesto comillas simples , comillas dobles, de todo, cambiado la manera en que se forma la consulta, y nada ha funcionado,

lo unico que se me ocurre es meterle la consulta a capon sin permitir que el usuario la monte a ver si viene por ahi el error.

gracias, y bueno, si alguien tiene alguna otra idea, se agradece.
  #4 (permalink)  
Antiguo 24/05/2011, 14:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Respuesta: error al generar .csv de descarga: syntax to use near '' at line 1

he probado metiendo la consulta directamente en la variable $sql

$sql="select * from alumnos, aula where alumnos.id_aula=aula.id_aula and aula.id_escuela=9 and alumnos.archivado in (0,1,2,3)";

Y nada sigue dando el mismo error

tiene que estar en algun otro sitio...
  #5 (permalink)  
Antiguo 27/05/2011, 14:09
 
Fecha de Ingreso: diciembre-2007
Mensajes: 23
Antigüedad: 17 años
Puntos: 0
Respuesta: error al generar .csv de descarga: syntax to use near '' at line 1

alguien me puede ayudar con esto? no se por donde cojerlo. gracias.

Etiquetas: csv, descarga, line, syntax
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 04:01.