Foros del Web » Programando para Internet » PHP »

actualizar datos de dos tablas de la base de datos en un solo formulario

Estas en el tema de actualizar datos de dos tablas de la base de datos en un solo formulario en el foro de PHP en Foros del Web. A traves de un mismo formulario estoy guardando datos en dos tablas distintas: en la primera tabla que se llama integrante guardo: cod_integrante nom_integrante correo_integrante ...
  #1 (permalink)  
Antiguo 27/05/2009, 18:41
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
De acuerdo actualizar datos de dos tablas de la base de datos en un solo formulario

A traves de un mismo formulario estoy guardando datos en dos tablas distintas:
en la primera tabla que se llama integrante guardo:
cod_integrante
nom_integrante
correo_integrante
cod_cread
cod_programa

en la otra tabla que se llama datosinvestigador guardo :
cod_integrante
cod_investigacion
cod_funcion
Cuando modifico los datos de la tabla integrante, solo me modifica el codigo (cod_integrante)en esa tabla, lo que necesito es que al modificar los datos de la primera tabla, tambien me modifique el codigo(cod_integrante) en la tabla datosinvestigador..
alguien me podria colaborar,
muchas gracias

envio el codigo donde realizo la modificacion solo en la tabla integrante

<?
$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";



$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");

$resultado = mysql_query ($qry, $bd);
if (!$resultado)
die ( mysql_error() );

$total_registros = mysql_affected_rows($bd);

echo "<h3> $total_registros Investigador modificado </h3>";

echo "<br> <a href='updintegrante.php'>Modificar datos de otro investigador</a>";
echo "<br> <a href='principal.php'>Volver a la pagina Principal de Registros</a>";

?>
  #2 (permalink)  
Antiguo 27/05/2009, 18:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

Cita:
Cuando modifico los datos de la tabla integrante, solo me modifica el codigo (cod_integrante)en esa tabla, lo que necesito es que al modificar los datos de la primera tabla, tambien me modifique el codigo(cod_integrante) en la tabla datosinvestigador..
Talvez .. ¿hacer 2 UPDATE?
Sino es eso, explicate un poquito mejor.
  #3 (permalink)  
Antiguo 27/05/2009, 18:52
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

es que esa es la duda, como debo de hacer los 2 UPDATE en esse codigo que muestro....

$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

lo hago debajo de este?
ya intente pero no me guarda en la otra tabla, yo lo plantie mas o menos asi

$qry = "UPDATE datosinvestigador SET cod_integrante = '$codigo',

y no me funciono

y tambien asi:

$qry = "UPDATE datosinvestigador SET cod_integrante = '$codigo',

WHERE cod_integrante = '$cod_integrante '";

y tampoco
  #4 (permalink)  
Antiguo 27/05/2009, 18:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

Ejecutaste la consulta usando la funcion mysql_query()?
  #5 (permalink)  
Antiguo 27/05/2009, 18:54
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

agradeceria me dijera como hacer los 2 UPDATE...gracias
  #6 (permalink)  
Antiguo 27/05/2009, 18:54
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

yo ejecuto la consulta asi:

$resultado = mysql_query ($qry, $bd);
  #7 (permalink)  
Antiguo 27/05/2009, 18:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

¿Declaraste el otro UPDATE inmediatamente despues del otro? Si lo estas haciendo asi, estas sobreescribiendo la variable, por eso solamente se ejecuta 1 sola consulta.

Seria:
Declaro la consulta 1
-La ejecuto
Declaro la consulta 2
-La ejecuto

O podrias declararlas ambas (con nombres de variables diferentes) y luego hacer los 2 mysql_query()

Muestrame como estas tratando de hacerlo.
  #8 (permalink)  
Antiguo 27/05/2009, 18:59
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

pero si puedo modifcar ese codigo en las dos tablas con un solo formulario ?
  #9 (permalink)  
Antiguo 27/05/2009, 19:00
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

Cita:
Iniciado por oscarbt Ver Mensaje
es que esa es la duda, como debo de hacer los 2 UPDATE en esse codigo que muestro....

$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

lo hago debajo de este?
ya intente pero no me guarda en la otra tabla, yo lo plantie mas o menos asi

$qry = "UPDATE datosinvestigador SET cod_integrante = '$codigo',

y no me funciono

y tambien asi:

$qry = "UPDATE datosinvestigador SET cod_integrante = '$codigo',

WHERE cod_integrante = '$cod_integrante '";

y tampoco
$primer_query=mysql_query("update usuarios set nombre='....'");

$segundo_query=mysql_query("update usuarios set nombre='....'");


Cual es el problema?
  #10 (permalink)  
Antiguo 27/05/2009, 19:01
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

este es el codigo en el cual modifico solo el cod_integrante en la tabla integrante, pero no se en donde debo de hacer el otro UPDATE para que me modifique ese cod_integrante en la tabla datosinvestigador



<?
$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";



$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");

$resultado = mysql_query ($qry, $bd);
if (!$resultado)
die ( mysql_error() );

$total_registros = mysql_affected_rows($bd);

echo "<h3> $total_registros Investigador modificado </h3>";

echo "<br> <a href='updintegrante.php'>Modificar datos de otro investigador</a>";
echo "<br> <a href='principal.php'>Volver a la pagina Principal de Registros</a>";

?>
  #11 (permalink)  
Antiguo 27/05/2009, 19:06
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

lo intente asi y solo me modifica en una sola tabla


$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

$segundo_query=mysql_query("UPDATE datosinvestigador set cod_integrante='$codigo'");
  #12 (permalink)  
Antiguo 27/05/2009, 19:07
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 9 meses
Puntos: 32
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

<?
$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

$qry2="aqui el codigo que necesitas"<--------------------



$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");

$resultado = mysql_query ($qry, $bd);
$resultado2 = mysql_query ($qry2, $bd);<--------------------



if (!$resultado)
die ( mysql_error() );

$total_registros = mysql_affected_rows($bd);

echo "<h3> $total_registros Investigador modificado </h3>";

echo "<br> <a href='updintegrante.php'>Modificar datos de otro investigador</a>";
echo "<br> <a href='principal.php'>Volver a la pagina Principal de Registros</a>";

?>


Te aconsejo que leas un manual de php ademas si te interesa puedes usar triggers de mysql para realizar lo que quieres ya que seria mas optimo.

Anteriormente tratamos ese tema en el foro

http://www.forosdelweb.com/f18/segur...9/#post2920614
  #13 (permalink)  
Antiguo 27/05/2009, 19:13
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

gracias, intente con lo que me enviaste pero no funciono
mira como deje el codigo, y lo mismo solo me modifica en una sola tabla

<?
$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

$qry2="UPDATE datosinvestigador SET cod_integrante='$codigo'
WHERE cod_integrante = '$cod_integrante '";




$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");



$resultado = mysql_query ($qry, $bd);
$result = mysql_query ($qry2, $bd);
if (!$resultado)
die ( mysql_error() );

$total_registros = mysql_affected_rows($bd);

echo "<h3> $total_registros Investigador modificado </h3>";

echo "<br> <a href='updintegrante.php'>Modificar datos de otro investigador</a>";
echo "<br> <a href='principal.php'>Volver a la pagina Principal de Registros</a>";

?>
  #14 (permalink)  
Antiguo 27/05/2009, 19:15
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

lo hice de la siguiente manera y me funciona, lo malo es que me modifica todos los codigos de la tabla datosinvestigador, y no el de la persona que le estoy haciendo la modificacion

$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

$qry2="UPDATE datosinvestigador SET cod_integrante='$codigo'";





$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");



$resultado = mysql_query ($qry, $bd);
$result = mysql_query ($qry2, $bd);
  #15 (permalink)  
Antiguo 27/05/2009, 19:15
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

Agrega:
if (!$result)
die ( mysql_error() );

Debajo de:
if (!$resultado)
die ( mysql_error() );

Te muestra algun error? Cual?

Cita:
lo hice de la siguiente manera y me funciona, lo malo es que me modifica todos los codigos de la tabla datosinvestigador, y no el de la persona que le estoy haciendo la modificacion
Porque no limitas la consulta UPDATE a que solo edite los registros con id X. Agrega una clausula WHERE.
  #16 (permalink)  
Antiguo 27/05/2009, 19:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

yo coloque de la siguiente manera:

$qry2="UPDATE datosinvestigador SET cod_integrante='$codigo'
WHERE cod_integrante = '$cod_integrante '";
espera ensayo con tu aporte
  #17 (permalink)  
Antiguo 27/05/2009, 19:28
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

no nada, lo hago asi y me modifica todos los codigo de la tabla datosinvestigador

$qry = "UPDATE integrante SET cod_integrante = '$codigo',
nom_integrante = '$nombre',
correo_integrante = '$email ',
cod_cread = '$cread ',
cod_programa = '$programa'
WHERE cod_integrante = '$cod_integrante '";

$qry2="UPDATE datosinvestigador SET cod_integrante='$codigo'";







$bd = mysql_connect ("localhost", "root", "root");
if ( !$bd )
die ("Error en la conexion con el DBMS");

$base_datos = "idead";
if ( !mysql_select_db ($base_datos, $bd) )
die ("Error seleccionando la base de datos");



$resultado = mysql_query ($qry, $bd);
$result = mysql_query ($qry2, $bd);
if (!$resultado)
die ( mysql_error() );
if (!$result)
die ( mysql_error() );

$total_registros = mysql_affected_rows($bd);
  #18 (permalink)  
Antiguo 27/05/2009, 19:29
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

y colocandole la clausula
WHERE cod_integrante = '$cod_integrante '";
debajo de
$qry2="UPDATE datosinvestigador SET cod_integrante='$codigo'

solo me modifica el codigo en la tabla integrante, mas no en la tabla datosinvestigador
  #19 (permalink)  
Antiguo 27/05/2009, 19:30
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

miento, colocandole la clausula tambien me modifica todos los codigos de la otra tabla
  #20 (permalink)  
Antiguo 27/05/2009, 19:31
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

Cita:
Porque no limitas la consulta UPDATE a que solo edite los registros con id X. Agrega una clausula WHERE.
Si con la clausula WHERE no edita ningun dato, es que:
Hay un error en la consulta
o
Simplemente no hay registro que cumplan la clausula WHERE.

Cita:
Agrega:
if (!$result)
die ( mysql_error() );

Debajo de:
if (!$resultado)
die ( mysql_error() );

Te muestra algun error? Cual?
  #21 (permalink)  
Antiguo 27/05/2009, 19:34
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: actualizar datos de dos tablas de la base de datos en un solo formulario

sii, tenia un error en la consulta, pero ya me funciono,,,,muchas gracias por su ayuda.........
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:35.