Hola.
Tengo un problema necesito actualizar datos de varias tablas: guardo los datos con un formulario y luego se guardan en sus respectivas tablas el problema esta en que cuando quiero actualizar algun dato lo que hace es guardar un nuevo registro en vez de actualizar. Igualmente que se borren los datos de todas las tablas relacionadas.
Espero me puedan ayudar.
Aqui dejo el codigo donde esta el formulario donde se ven los datos a actualizar:
<?php
$id_personas=$_GET["id_personas"];
if($id_personas){
include("config.php");
$entidades="personas a LEFT JOIN padece b ON a.id_personas=b.id_personas LEFT JOIN discapacidades c ON b.id_discapacidad=c.id_discapacidad ";
$entidades.="LEFT JOIN profesiones d ON a.id_personas=d.id_personas LEFT JOIN estudios e ON d.id_estudios=e.id_estudios LEFT JOIN ocupaciones f ON a.id_ocupacion=f.id_ocupacion LEFT JOIN titulos h ON d.id_titulos=h.id_titulos ";
$ssql=mysql_query("select a.cedula,a.nombres,a.apellidos,a.nacionalidad,a.fecha_nac,a.sexo,a.edo_civil,a.telefono,c.id_discapacidad,e.id_estudios,f.id_ocupacion,h.id_titulos from $entidades where a.id_personas='".$id_personas."'");
$rsql=mysql_fetch_array($ssql,MYSQL_NUM);
$cedula =$rsql[0];
$nombres =$rsql[1];
$apellidos =$rsql[2];
$nacionalidad =$rsql[3];
$fecha_nac =$rsql[4];
$sexo =$rsql[5];
$edo_civil =$rsql[6];
$telefono =$rsql[7];
$discapacidad =$rsql[8];
$estudios =$rsql[9];
$ocupacion =$rsql[10];
$titulos =$rsql[11];
$vboton ="Actualizar";
}
else
$vboton ="Guardar";
Y este es el codigo del archivo .PHP donde se procesan los datos:
<?php
include("config.php");
$id_personas=$_POST["id_personas"];
$cedula=$_POST["cedula"];
$nombres=$_POST["nombres"];
$apellidos=$_POST["apellidos"];
$nacionalidad=$_POST["nacionalidad"];
$fecha_nac=$_POST["anio"]."-".$_POST["mes"]."-".$_POST["dia"];
$sexo=$_POST["sexo"];
$edo_civil=$_POST["edo_civil"];
$telefono=$_POST["telefono"];
$estudios=$_POST["estudios"];
$titulos=$_POST["titulos"];
$ocupacion=$_POST["ocupaciones"];
$discapacidad=$_POST["discapacidad"];
$id_viviendas=$_POST["id_viviendas"];
$id_eliminar=$_GET["id_eliminar"];
$mensaje="Debe llenar todos los campos<a href='registro_habitantes.php'>VOLVER</a>";
$mensaje2="Esta persona ya se encuentra registada en la Base de Datos<a href='registro_habitantes.php'>VOLVER</a>";
$entidades="personas a LEFT JOIN padece b ON a.id_personas=b.id_personas LEFT JOIN discapacidades c ON b.id_discapacidad=c.id_discapacidad ";
$entidades.="LEFT JOIN profesiones d ON a.id_personas=d.id_personas LEFT JOIN estudios e ON d.id_estudios=e.id_estudios LEFT JOIN ocupaciones f ON a.id_ocupacion=f.id_ocupacion LEFT JOIN titulos h ON d.id_titulos=h.id_titulos";
if($id_eliminar){
$ssql=mysql_query("delete from personas where id_personas='$id_eliminar'");
}else{
if($id_personas){
$ssql=mysql_query("update $entidades set a.cedula='$cedula',a.nombres='$nombres',a.apellidos='$apellidos',a.nacionalidad'$nacionalidad',a.fecha_nac='$fecha_nac',a.sexo='$sexo',a.edo_civil='$edo_civil',a.telefono='$telefono',c.id_discapacidad='$discapacidad',e.id_estudios='$estudios',f.id_ocupacion='$ocupacion',h.id_titulos='$titulos' where a.id_personas='".$id_personas."' where d.id_personas='".$id_personas."' where b.id_personas='".$id_personas."'");
while($row=mysql_fetch_array($ssql)) {
$cedula=$row["cedula"];
$nombres=$row["nombres"];
$apellidos=$row["apellidos"];
$nacionalidad=$row["nacionalidad"];
$fecha_nac=$row["anio"]."-".$_POST["mes"]."-".$_POST["dia"];
$sexo=$row["sexo"];
$edo_civil=$row["edo_civil"];
$telefono=$row["telefono"];
$estudios=$row["estudios"];
$titulos=$row["titulos"];
$ocupacion=$row["ocupaciones"];
$discapacidad=$row["discapacidad"];
$id_titulos=$row["id_titulos"];
$profesion=$row["profesion"];
}
}
if(($nombres=="")||($cedula=="")){
exit($mensaje);
}
//consulto si existe
/*$ver=mysql_query("select id_personas from personas where cedula='$cedula'");
$row=mysql_fetch_array($ver,MYSQL_NUM);
if($row[0]){
exit($mensaje2);*/
//actualizo
//$id_personas=$row[0];
//}
else{
//guarda los datos de la persona y la ocupacion
$result_o = mysql_query("SELECT * FROM ocupaciones WHERE id_ocupacion='$ocupacion'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_o)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_o = $row["id_ocupacion"];}
$guardar_datos=mysql_query("insert into personas ( nombres, apellidos, nacionalidad, cedula, fecha_nac, sexo, edo_civil, telefono, id_ocupacion) values ('$nombres', '$apellidos', '$nacionalidad', '$cedula', '$fecha_nac','$sexo', '$edo_civil', '$telefono', '$valor_o')");
$id_personas=mysql_insert_id();
//guarda el nivel de estudios y eltitulo universitario
$result_e = mysql_query("SELECT * FROM estudios WHERE id_estudios='$estudios'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_e)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_e = $row["id_estudios"];}
$result_t = mysql_query("SELECT * FROM titulos WHERE id_titulos='$titulos'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_t)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_t = $row["id_titulos"];}
//Finalmente hacemos la insercion en otra tabla
mysql_query("INSERT INTO profesiones(id_personas, id_titulos, id_estudios) VALUES ('".$id_personas."','".$valor_t."','".$valor_e."')"); //Aqui insertamos ya el nombre del campo seleccionado
//guarda la discapacidad
$result_d = mysql_query("SELECT * FROM discapacidades WHERE id_discapacidad='$discapacidad'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_d)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_d = $row["id_discapacidad"];}
//Finalmente hacemos la insercion en otra tabla
mysql_query("INSERT INTO padece(id_personas, id_discapacidad) VALUES ('".$id_personas."','".$valor_d."')"); //Aqui insertamos ya el nombre del campo seleccionado
//guardamos a la vivienda que pertence
$guardar2=mysql_query("insert into familias(id_personas,id_viviendas)values('".$id_personas."','".$id_viviendas."')");
//echo("Los datos se guardaronKFKSJFHKSHFSFHSKHFKSFH");
}
}
header("location:registro_habitantes.php?id_viviendas=".$id_viviendas);
Tengo un problema necesito actualizar datos de varias tablas: guardo los datos con un formulario y luego se guardan en sus respectivas tablas el problema esta en que cuando quiero actualizar algun dato lo que hace es guardar un nuevo registro en vez de actualizar. Igualmente que se borren los datos de todas las tablas relacionadas.
Espero me puedan ayudar.
Aqui dejo el codigo donde esta el formulario donde se ven los datos a actualizar:
<?php
$id_personas=$_GET["id_personas"];
if($id_personas){
include("config.php");
$entidades="personas a LEFT JOIN padece b ON a.id_personas=b.id_personas LEFT JOIN discapacidades c ON b.id_discapacidad=c.id_discapacidad ";
$entidades.="LEFT JOIN profesiones d ON a.id_personas=d.id_personas LEFT JOIN estudios e ON d.id_estudios=e.id_estudios LEFT JOIN ocupaciones f ON a.id_ocupacion=f.id_ocupacion LEFT JOIN titulos h ON d.id_titulos=h.id_titulos ";
$ssql=mysql_query("select a.cedula,a.nombres,a.apellidos,a.nacionalidad,a.fecha_nac,a.sexo,a.edo_civil,a.telefono,c.id_discapacidad,e.id_estudios,f.id_ocupacion,h.id_titulos from $entidades where a.id_personas='".$id_personas."'");
$rsql=mysql_fetch_array($ssql,MYSQL_NUM);
$cedula =$rsql[0];
$nombres =$rsql[1];
$apellidos =$rsql[2];
$nacionalidad =$rsql[3];
$fecha_nac =$rsql[4];
$sexo =$rsql[5];
$edo_civil =$rsql[6];
$telefono =$rsql[7];
$discapacidad =$rsql[8];
$estudios =$rsql[9];
$ocupacion =$rsql[10];
$titulos =$rsql[11];
$vboton ="Actualizar";
}
else
$vboton ="Guardar";
Y este es el codigo del archivo .PHP donde se procesan los datos:
<?php
include("config.php");
$id_personas=$_POST["id_personas"];
$cedula=$_POST["cedula"];
$nombres=$_POST["nombres"];
$apellidos=$_POST["apellidos"];
$nacionalidad=$_POST["nacionalidad"];
$fecha_nac=$_POST["anio"]."-".$_POST["mes"]."-".$_POST["dia"];
$sexo=$_POST["sexo"];
$edo_civil=$_POST["edo_civil"];
$telefono=$_POST["telefono"];
$estudios=$_POST["estudios"];
$titulos=$_POST["titulos"];
$ocupacion=$_POST["ocupaciones"];
$discapacidad=$_POST["discapacidad"];
$id_viviendas=$_POST["id_viviendas"];
$id_eliminar=$_GET["id_eliminar"];
$mensaje="Debe llenar todos los campos<a href='registro_habitantes.php'>VOLVER</a>";
$mensaje2="Esta persona ya se encuentra registada en la Base de Datos<a href='registro_habitantes.php'>VOLVER</a>";
$entidades="personas a LEFT JOIN padece b ON a.id_personas=b.id_personas LEFT JOIN discapacidades c ON b.id_discapacidad=c.id_discapacidad ";
$entidades.="LEFT JOIN profesiones d ON a.id_personas=d.id_personas LEFT JOIN estudios e ON d.id_estudios=e.id_estudios LEFT JOIN ocupaciones f ON a.id_ocupacion=f.id_ocupacion LEFT JOIN titulos h ON d.id_titulos=h.id_titulos";
if($id_eliminar){
$ssql=mysql_query("delete from personas where id_personas='$id_eliminar'");
}else{
if($id_personas){
$ssql=mysql_query("update $entidades set a.cedula='$cedula',a.nombres='$nombres',a.apellidos='$apellidos',a.nacionalidad'$nacionalidad',a.fecha_nac='$fecha_nac',a.sexo='$sexo',a.edo_civil='$edo_civil',a.telefono='$telefono',c.id_discapacidad='$discapacidad',e.id_estudios='$estudios',f.id_ocupacion='$ocupacion',h.id_titulos='$titulos' where a.id_personas='".$id_personas."' where d.id_personas='".$id_personas."' where b.id_personas='".$id_personas."'");
while($row=mysql_fetch_array($ssql)) {
$cedula=$row["cedula"];
$nombres=$row["nombres"];
$apellidos=$row["apellidos"];
$nacionalidad=$row["nacionalidad"];
$fecha_nac=$row["anio"]."-".$_POST["mes"]."-".$_POST["dia"];
$sexo=$row["sexo"];
$edo_civil=$row["edo_civil"];
$telefono=$row["telefono"];
$estudios=$row["estudios"];
$titulos=$row["titulos"];
$ocupacion=$row["ocupaciones"];
$discapacidad=$row["discapacidad"];
$id_titulos=$row["id_titulos"];
$profesion=$row["profesion"];
}
}
if(($nombres=="")||($cedula=="")){
exit($mensaje);
}
//consulto si existe
/*$ver=mysql_query("select id_personas from personas where cedula='$cedula'");
$row=mysql_fetch_array($ver,MYSQL_NUM);
if($row[0]){
exit($mensaje2);*/
//actualizo
//$id_personas=$row[0];
//}
else{
//guarda los datos de la persona y la ocupacion
$result_o = mysql_query("SELECT * FROM ocupaciones WHERE id_ocupacion='$ocupacion'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_o)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_o = $row["id_ocupacion"];}
$guardar_datos=mysql_query("insert into personas ( nombres, apellidos, nacionalidad, cedula, fecha_nac, sexo, edo_civil, telefono, id_ocupacion) values ('$nombres', '$apellidos', '$nacionalidad', '$cedula', '$fecha_nac','$sexo', '$edo_civil', '$telefono', '$valor_o')");
$id_personas=mysql_insert_id();
//guarda el nivel de estudios y eltitulo universitario
$result_e = mysql_query("SELECT * FROM estudios WHERE id_estudios='$estudios'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_e)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_e = $row["id_estudios"];}
$result_t = mysql_query("SELECT * FROM titulos WHERE id_titulos='$titulos'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_t)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_t = $row["id_titulos"];}
//Finalmente hacemos la insercion en otra tabla
mysql_query("INSERT INTO profesiones(id_personas, id_titulos, id_estudios) VALUES ('".$id_personas."','".$valor_t."','".$valor_e."')"); //Aqui insertamos ya el nombre del campo seleccionado
//guarda la discapacidad
$result_d = mysql_query("SELECT * FROM discapacidades WHERE id_discapacidad='$discapacidad'"); //Aqui condicionamos el id del campo que mostraste en el combo que se igual al al valor que se registro en el select para que sepa que campo almacenar
while($row = mysql_fetch_array($result_d)) { //Volvemos a hacer el ciclo para que rescate el valor
$valor_d = $row["id_discapacidad"];}
//Finalmente hacemos la insercion en otra tabla
mysql_query("INSERT INTO padece(id_personas, id_discapacidad) VALUES ('".$id_personas."','".$valor_d."')"); //Aqui insertamos ya el nombre del campo seleccionado
//guardamos a la vivienda que pertence
$guardar2=mysql_query("insert into familias(id_personas,id_viviendas)values('".$id_personas."','".$id_viviendas."')");
//echo("Los datos se guardaronKFKSJFHKSHFSFHSKHFKSFH");
}
}
header("location:registro_habitantes.php?id_viviendas=".$id_viviendas);