Foros del Web » Programando para Internet » PHP »

Actualizar varias tablas

Estas en el tema de Actualizar varias tablas en el foro de PHP en Foros del Web. Hola, tengo una base de datos con varias tablas y un formulario en el que me muestra la informacion de todas las tablas, ahora quiero ...
  #1 (permalink)  
Antiguo 19/05/2014, 10:50
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Actualizar varias tablas

Hola, tengo una base de datos con varias tablas y un formulario en el que me muestra la informacion de todas las tablas, ahora quiero poder actualizar las tablas desde un formulario, e intentado con esto pero no me actualiza:

Código PHP:
<?php

if(isset($_POST["submit"])) {
                           
$query="UPDATE 
        SET dir_persona.nombre='$nombre',
        dir_puesto.puesto='$puesto',
        dir_adscripcion.adscripcion='$adscripcion',
        dir_domicilio.domicilio='$domicilio',
        dir_persona.correo='$correo'
        dir_persona.telefono='$telefono'
        dir_persona.telefono='$telefono1'
        WHERE dir_persona.id_persona = '$id_persona'"
;
        
        
mysql_query($sSQL); 
                          }
echo 

<p>Los datos han sido actualizados con exito.</p> 

<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p> 

<p><a href='javascript:history.go(-2)'>INICIO</a></p> 
"


?>
  #2 (permalink)  
Antiguo 19/05/2014, 10:54
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Actualizar varias tablas

- En que momento conectas a MySQL ? no veo el mysql_connect() por ningun lado,... estas incluyendo lo que muestras dentro de otro script o que ?

- Que imprime la consulta $query si le haces un echo ?

- mysql_query($sSQL) or die(mysql_error());

- Por que la redireccion la haces con JS ? la puedes hacer con PHP con header ("Location: pagina.php");
__________________
Salu2!
  #3 (permalink)  
Antiguo 19/05/2014, 10:56
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

lo tengo mas arriva

Código PHP:
Ver original
  1. <?php
  2.                    
  3.                     include("conecta.php");
  4.                     include("acceso.php");
  5.                     ?>
  #4 (permalink)  
Antiguo 19/05/2014, 10:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Actualizar varias tablas

Cita:
Iniciado por Italico76 Ver Mensaje
- Que imprime la consulta $query si le haces un echo ?

- mysql_query($sSQL) or die(mysql_error());
Y primero que todo:

Código PHP:
Ver original 
__________________
Salu2!
  #5 (permalink)  
Antiguo 19/05/2014, 10:59
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: Actualizar varias tablas

Creo que el error es este,

Código PHP:
Ver original
  1. mysql_query($sSQL);

deberia ser

Código PHP:
Ver original
  1. mysql_query($query);
  #6 (permalink)  
Antiguo 19/05/2014, 10:59
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

Query was empty
  #7 (permalink)  
Antiguo 19/05/2014, 11:01
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

Cita:
Iniciado por nanotk58 Ver Mensaje
Creo que el error es este,

Código PHP:
Ver original
  1. mysql_query($sSQL);

deberia ser

Código PHP:
Ver original
  1. mysql_query($query);
ya lo cambie y sigue sin actualizar
  #8 (permalink)  
Antiguo 19/05/2014, 11:06
 
Fecha de Ingreso: abril-2013
Mensajes: 61
Antigüedad: 11 años, 7 meses
Puntos: 4
Respuesta: Actualizar varias tablas

Ponlo, asi como decia italico, para poder ver el error que devuelve.
Código PHP:
Ver original
  1. mysql_query($query) or die(mysql_error());
  #9 (permalink)  
Antiguo 19/05/2014, 12:11
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Actualizar varias tablas

Si no me hagan perder el tiempo

Haz que los errores se muestren (conexion, seleccion de base de datos, consulta, resultados....)
__________________
Salu2!
  #10 (permalink)  
Antiguo 19/05/2014, 12:57
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

me pone este error

Access denied for user ''@'localhost' (using password: NO)
  #11 (permalink)  
Antiguo 19/05/2014, 13:01
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Actualizar varias tablas

Bueno... el user es 'root' ? sino... es correcto ? su pass es nulo seguro ?

El usuario que coloques en mysql_connect() debe tener permisos para acceder a esa base de datos seleccionada, los tiene ?
__________________
Salu2!
  #12 (permalink)  
Antiguo 19/05/2014, 15:04
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualizar varias tablas

Cita:
Iniciado por portal47 Ver Mensaje
me pone este error

Access denied for user ''@'localhost' (using password: NO)
Da la impresión de que no estás poniendo el username...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #13 (permalink)  
Antiguo 20/05/2014, 10:39
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

este es mi conexion:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Documento sin t&iacute;tulo</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6. <body>
  7.  
  8.  
  9. <?php
  10. function connectToDB( $dbName="" ) {
  11.    
  12.     $hostdb = 'localhost'; /*los datos son correctos   */
  13.     $userdb = 'root';  
  14.     $passdb = 'root';    
  15.     $namedb =  $dbName ? $dbName : 'movedb';
  16.  
  17.     $link = mysql_connect ($hostdb, $userdb, $passdb);
  18.        
  19.     if (!$link) {
  20.        die('Could not connect: ' . mysql_error());
  21.     }
  22.  
  23.     $db_selected = mysql_select_db($namedb);
  24.     if (!$db_selected) {
  25.         die ('Can\'t use database : ' . mysql_error());
  26.     }
  27.     return $link;
  28. }
  29.  
  30. ?>
  31.  
  32.  
  33. </body>
  34. </html>
  #14 (permalink)  
Antiguo 21/05/2014, 09:37
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

ya logre que actualice pero solo el nombre

Código PHP:
Ver original
  1. <?php
  2.    
  3.     if(isset($_POST["submit"])){
  4.      $id_persona = $_POST['id_persona'];
  5.      $nombre = $_POST['nombre'];
  6.      $puesto = $_POST['puesto'];
  7.      
  8.     $query = "UPDATE dir_persona SET  
  9.     nombre = '$nombre',
  10.     puesto = '$puesto'
  11.     WHERE dir_persona.id_persona = '$id_persona'";
  12.     $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  13.     echo "<p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p>
  14.     Se han modificado los datos del usuario con cédula ".$Cedula;
  15.  
  16. }
  17.  
  18. ?>

al intentar actualizar el puesto me dice: Error: Unknown column 'puesto' in 'field list'

"puesto" esta en otra tabla, como le tendria que hacer para que actualice?

arriva de eso tengo la conexion, la union de las tablas y los imprimo en un formulario para editar
  #15 (permalink)  
Antiguo 21/05/2014, 10:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Actualizar varias tablas

tabla.puesto
__________________
Salu2!
  #16 (permalink)  
Antiguo 21/05/2014, 11:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualizar varias tablas

Cita:
"puesto" esta en otra tabla, como le tendria que hacer para que actualice?
¿Y qué relaciómn hay entre la tabla DIR_PERSONA y la tabla donde guardas el puesto?
Sería hacer un UPDATE con JOIN, obviamnete.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #17 (permalink)  
Antiguo 21/05/2014, 11:09
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

intente esto:

Código PHP:
Ver original
  1. <?php
  2.    
  3.     if(isset($_POST["submit"])){
  4.      $id_persona = $_POST['id_persona'];
  5.      $id_puesto = $_POST['id_puesto'];
  6.      $id_adscripcion = $_POST['id_adscripcion'];
  7.      $id_domicilio = $_POST['id_domicilio'];
  8.      $nombre = $_POST['nombre'];
  9.      $puesto = $_POST['puesto'];
  10.      $adscripcion = $_POST['adscripcion'];
  11.      $domicilio = $_POST['domicilio'];
  12.      
  13.     $query = "UPDATE dir_persona, dir_puesto SET  
  14.     nombre = '$nombre',
  15.     puesto = '$puesto'
  16.     WHERE dir_persona.id_persona = '$id_persona',
  17.     dir_puesto.id_puesto = '$id_puesto',
  18.     dir_adscripcion.id_adscripcion = '$id_adscripcion',
  19.     dir_domicilio.id_domicilio = '$id_domicilio'";
  20.     $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  21.     echo "Se han modificado los datos del usuario con cédula
  22.     <p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p> ";
  23.  
  24. }
  25.  
  26. ?>

logre actualizar nombre y puesto, agregue adscripcion y domicilio, ahora me marca error en el where
  #18 (permalink)  
Antiguo 21/05/2014, 11:10
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Actualizar varias tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Y qué relaciómn hay entre la tabla DIR_PERSONA y la tabla donde guardas el puesto?
Sería hacer un UPDATE con JOIN, obviamnete.
tabla dir_persona

id_persona
nombre
paterno
materno
id_puesto
...

tabla dir_puesto

id_puesto
puesto
  #19 (permalink)  
Antiguo 21/05/2014, 13:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Actualizar varias tablas

La query andaría cerca de esto:
Código SQL:
Ver original
  1. UPDATE pe, pu
  2. FROM dir_persona pe INNER JOIN dir_puesto pu ON pe.id_puesto = pu.id_puesto
  3. SET pe.nombre = '$nombre',
  4.     pu.puesto = '$puesto'
  5. WHERE pe.id_persona = '$id_persona',
  6.     pe.id_puesto = '$id_puesto';
Ahora bien, tu query tal y comola tienes te va a dar más erroes, porque estás invoncando tablas que no están en el UPDATE. ten en cuenta que en el UPDATE deben si o si listarse todas las tablas cuyas columnas se mencionen en el SET o el WHERE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: formulario, mysql, sql, tabla, tablas
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 21:19.