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
require ('base_de_datos.php'); $conexion = mysql_connect ($host,$usuario,$password) or die (' Error en la conexion, el error es: ' .mysql_error()); mysql_select_db ($bd, $conexion) or die (' Error en la seleccion de base datos, el error es : ' .mysql_error()); $consulta = 'SELECT id_comuna FROM comuna WHERE descripcion_comuna = "'.$_POST['slt_comunas_modificar'].'"'; $resultado = mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error()); $consulta = 'SELECT id_ciudad FROM ciudad WHERE descripcion_ciudad = "'.$_POST['slt_ciudades_modificar'].'"'; $resultado = mysql_query($consulta,$conexion) or die ('Error en la consulta SQL, el error es : '.mysql_error()); $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).'"'; echo("$consulta");
Aqui dejo lo la consulta cuando se seleciono un parametro con Ñ:
Código php:
Ver original
UPDATE personal SET nombres_personal = "Jorge Enrique" , apellido_paterno_personal = "Ruiz" , apellido_materno_personal = "Lopez" , direccion_personal = "Pasaje Esperanza #0245" , id_comuna = , id_ciudad = 1 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
UPDATE personal SET nombres_personal = "Jorge Enrique" , apellido_paterno_personal = "Ruiz" , apellido_materno_personal = "Lopez" , direccion_personal = "Pasaje Esperanza #0245" , id_comuna = 20, id_ciudad = 1 WHERE rut_personal = "13902056"
Gracias!