Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2009, 14:08
Avatar de Capote
Capote
 
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 19 años, 2 meses
Puntos: 0
Problema con caracter Ñ al insertar/modificar en mi base datos

Hola.
Tengo una tabla en mi base de datos que se llama comunas y tiene los campos, id_comuna y descripcion_comuna. En id los valores son numerico (1,2,3,4.....N) y en descripcion es el nombre (Santiago,Lo prado, Maipu, Etc).

Tengo unos formularios en donde ingreso y modifico informacion de personal, y uno de los parametros es la comuna que selecciono la descripcion de un combobox. El problema se presenta cuando la descripcion que esta en el combobox tiene un caracter Ñ que hace que cuando yo consulto por la opcion seleccionada para tomar su id y poder insertarlo/modificarlo, no me selecionada nada y el insert se ejecuta de forma incorrecta y se cae mi aplicacion. En cambio si la opcion que se escogio del combobox no tiene Ñ no hay ningun problema y el insert/modificar se ejecuta sin problemas.

Aqui mi codigo:


Código php:
Ver original
  1. require ('base_de_datos.php');
  2.         $conexion = mysql_connect ($host,$usuario,$password) or die (' Error en la conexion, el error es: ' .mysql_error());
  3.         mysql_select_db ($bd, $conexion) or die (' Error en la seleccion de base datos, el error es : ' .mysql_error());
  4.        
  5.         $consulta = 'SELECT id_comuna FROM comuna WHERE descripcion_comuna = "'.$_POST['slt_comunas_modificar'].'"';
  6.         $resultado = mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
  7.         $id_comuna = mysql_fetch_row($resultado);
  8.        
  9.         $consulta = 'SELECT id_ciudad FROM ciudad WHERE descripcion_ciudad = "'.$_POST['slt_ciudades_modificar'].'"';
  10.         $resultado = mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error());
  11.         $id_ciudad = mysql_fetch_row($resultado);
  12.        
  13.         $consulta= 'UPDATE personal SET  nombres_personal = "'.mysql_real_escape_string($_POST['txt_nombre_personal_modificar']).'" , apellido_paterno_personal = "'.mysql_real_escape_string($_POST['txt_paterno_personal_modificar']).'" , apellido_materno_personal = "'.mysql_real_escape_string($_POST['txt_materno_personal_modificar']).'" , direccion_personal = "'.mysql_real_escape_string($_POST['txt_direccion_personal_modificar']).'" , id_comuna = '.$id_comuna[0].', id_ciudad = '.$id_ciudad[0].' WHERE rut_personal = "'.substr($_POST['txt_rut_personal_modificar'],0,-2).'"';
  14.     echo("$consulta");

Aqui dejo lo la consulta cuando se seleciono un parametro con Ñ:

Código php:
Ver original
  1. UPDATE personal SET
  2. nombres_personal = "Jorge Enrique" ,
  3. apellido_paterno_personal = "Ruiz" ,
  4. apellido_materno_personal = "Lopez" ,
  5. direccion_personal = "Pasaje Esperanza #0245" ,
  6. id_comuna = ,
  7. id_ciudad = 1
  8. WHERE rut_personal = "13902056"

Y el error
Código PHP:
Error en la consulta SQL, el error es : 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  id_ciudad = 1 WHERE rut_personal = "13902056" 

Si la comuna no tiene Ñ, se ejecuta de manera correcta mi consulta:

Código php:
Ver original
  1. UPDATE personal SET
  2.       nombres_personal = "Jorge Enrique" ,
  3.       apellido_paterno_personal = "Ruiz" ,
  4.       apellido_materno_personal = "Lopez" ,
  5.       direccion_personal = "Pasaje Esperanza #0245" ,
  6.       id_comuna = 20,
  7.       id_ciudad = 1
  8.       WHERE rut_personal = "13902056"


Gracias!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"