Foros del Web » Programando para Internet » PHP »

problema en sintaxis SQL

Estas en el tema de problema en sintaxis SQL en el foro de PHP en Foros del Web. Hola, Al intentar conectarme a una tabla de la base de datos me marca el siguiente error: You have an error in your SQL syntax. ...
  #1 (permalink)  
Antiguo 27/06/2005, 18:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
problema en sintaxis SQL

Hola,

Al intentar conectarme a una tabla de la base de datos me marca el siguiente error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '( fecha_nac ) when '0' then 'dia' when '' then 'a

El código que estoy usando es el siguiente:

Código PHP:
function Conecta()
{
  $db_host="localhost";
  $db_nombre="x";
  $db_user="x"; 
  $db_pass="x";
  $link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
  mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos."); 
return $link;
}
<?
include('conexion.php');
$link Conecta();
    
$q "select 
            num_cta
          , clave_alum
          , nombre
          , case month(fecha_nac)
              when '0' then ''
              when month(fecha_nac) in ('10','11','12') then month(fecha_nac)                   
              else concat('0',month(fecha_nac))
            end as mes_num_nac   
          , case year( fecha_nac )
              when '0' then 'año'
              when ''  then 'año'
              else year(fecha_nac)
            end as anio_nac
          , case month( fecha_nac )
              when 1   then 'enero'
              when 2   then 'febrero'
              when 3   then 'marzo'
              when 4   then 'abril'
              when 5   then 'mayo'
              when 6   then 'junio'
              when 7   then 'julio'
              when 8   then 'agosto'
              when 9   then 'septiembre'
              when 10 then 'octubre'
              when 11 then 'noviembre'
              when 12 then 'diciembre'
              else 'mes'
            end as mes_nac
          , case day( fecha_nac )
              when '0' then 'día'
              when ''  then 'día'
              else day(fecha_nac)
            end as dia_nac 
          , sem_inicio
          , estatus
          , case year( fecha_tit )
              when '0' then 'año'
              when ''  then 'año'
              else year(fecha_tit)
            end as anio_tit
          , case month(fecha_tit)
              when '0' then ''
              when month(fecha_tit) in ('10','11','12') then month(fecha_tit)                                      else concat('0',month(fecha_tit))
               end as mes_num_tit   
          , case month( fecha_tit )
              when 1   then 'enero'
              when 2   then 'febrero'
              when 3   then 'marzo'
              when 4   then 'abril'
              when 5   then 'mayo'
              when 6   then 'junio'
              when 7   then 'julio'
              when 8   then 'agosto'
              when 9   then 'septiembre'
              when 10 then 'octubre'
              when 11 then 'noviembre'
              when 12 then 'diciembre'
              else 'mes'
            end
            as mes_tit
          , case day( fecha_tit )
              when '0' then 'día'
              when ''  then 'día'
              else day(fecha_tit)
            end as dia_tit
          , case year( fecha_baja )
              when '0' then 'año'
              when ''  then 'año'
              else year(fecha_baja)
            end as anio_baja
          , case month(fecha_baja)
              when '0' then ''
              when month(fecha_baja) in ('10','11','12') then month(fecha_baja)                   
              else concat('0',month(fecha_baja))
               end as fecha_baja   
          , case month( fecha_baja )
              when 1   then 'enero'
              when 2   then 'febrero'
              when 3   then 'marzo'
              when 4   then 'abril'
              when 5   then 'mayo'
              when 6   then 'junio'
              when 7   then 'julio'
              when 8   then 'agosto'
              when 9   then 'septiembre'
              when 10 then 'octubre'
              when 11 then 'noviembre'
              when 12 then 'diciembre'
              else 'mes'
            end
            as mes_baja
          , case day( fecha_baja )
              when '0' then 'día'
              when ''  then 'día'
              else day(fecha_baja)
            end as dia_baja
          , telefono_1
          , telefono_2
          , cta_correo
          , mensaje
          from alumnos
          where  num_cta = '$num_cta'"
;

  
$result mysql_query($q) or die (mysql_error());
  if (
mysql_num_rows($result)==0) {

?>
Según yo estaba todo bien, no entiendo qué sucede.
La versión de MySQL que tiene el servidor es la 4.0.16 y la de PHP es 4.3.10

Gracias

Última edición por yconoclasta; 28/06/2005 a las 09:48
  #2 (permalink)  
Antiguo 28/06/2005, 13:30
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
Hola de nuevo, he visto que el problema es solo en estas lineas del código:
Código PHP:
          , case dayfecha_nac )
              
when '0' then 'día'
              
when ''  then 'día'
              
else day(fecha_nac)
            
end as dia_nac 
Si la quito si pasa, pero obviamente no me llena el dato de el día. Por qué me marca error? qué es lo que anda mal?

Última edición por yconoclasta; 28/06/2005 a las 15:40
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 21:02.