Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/09/2011, 00:48
Avatar de Raziel_Ravenheart
Raziel_Ravenheart
 
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: actualizar un valor de un registro con el mismo id

En este caso,... creo que lo más conveniente sería que modificaras la base de datos, por que? muy sencillo, digamos que por ahora tienes a juan de informatica y a juan de contabilidad, pero cuando alguien esté ingresando datos puede escribir el nombre del departamento como se le venga en gana, es decir;

Dep.inf
Info.
Informatica
informática
infor
depto.Sistemas
contabilidad
cont
depto.cont

y al hacer esto. la integridad de la base de datos se vería comprometida, en el momento en que hayan varios funcionarios de un mismo departamento y todos tengan diferente el nombre del departamento, como en el ejemplo anterior. Para evitar esto, es mejor categorizar los departamentos, creando una tabla aparte para estos, por muy pocos que sean es lo más aconsejable. en donde tendrías una tabla con dos campos idDepartamento y nomDepartamento, luego, en el campo de la base de datos donde tienes departamento, lo cambias por idDepartamento y haces una relacion con llave foránea.

Cual es el truco aquí? muy sencillo, una vez creada la llave foránea, puedes crear una llave principal compuesta, donde suponiendo que los idDepartamento sean:

idDepartamento nomDepartamento
1 Informatica
2 Contabilidad
3 Cartera

la tabla de funcionarios te quedaría algo como

id -----nombre-----idDepartamento------sueldo
1 - juan - 1 - 100
1 - juan - 2 - 200

y con base en esto puedes armar una llave principal compuesta para esta tabla, donde sus partes serían id e idDepartamento, de este modo pueden existir dos registros con id=1, pero como la llave compuesta también necesita del idDepartamento, no habrá conflicto, y te ahorras cualquier error que provenga de escribir mal los nombres de los departamentos, además que ahora tendrá un nivel más de normalización una parte de tu base de datos, lo cual la puede hacer más fácil de mantener en una futura mejora.

Por otro lado revisando tu código no he visto nada mal... pero déjame le hecho otra ojeada a ver que encuentro, pero prefiero que vayas considerando hacer los cambios que te acabo de escribir.

Ten cuidado que en el archivo "ACTUALIZACION.PHP", estoy observando que en la línea 23, tienes estático el nombre de "Contabilidad", cuando en este caso debería ir la variable $dep. O es posible que lo tengas ahí intencionalmente.

Un consejo que te doy a la hora de hacer las consultas es el siguiente, siempre que puedas utiliza comillas sencillas, por que las comillas dobles le indican al motor de php que debe buscar variables que procesar, y esto no es aconsejable cuando son muchas. En este caso no creo que haya mucho problema, pero en una futura aplicación donde se hagan cientos de consultas de esta manera, puede representar una baja en el rendimiento. Un ejemplo con comillas sencilas sería

Código PHP:
Ver original
  1. $sql = 'UPDATE empleados SET  sueldo='.$suel.' WHERE idEmpleado='.$idemp.' AND departamento='.$dep;

Última edición por Raziel_Ravenheart; 07/09/2011 a las 01:06 Razón: corregir respuesta