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: 16 años, 9 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 SQLel error es You have an error in your SQL syntaxcheck 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"