Foros del Web » Programando para Internet » PHP »

duplicados al actualizar registros

Estas en el tema de duplicados al actualizar registros en el foro de PHP en Foros del Web. hola, tengo un formulario para actualizar los datos de una persona y el registro de telefono al modificar uno se duplican, cada persona puede tener ...
  #1 (permalink)  
Antiguo 28/05/2014, 11:20
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
duplicados al actualizar registros

hola, tengo un formulario para actualizar los datos de una persona y el registro de telefono al modificar uno se duplican, cada persona puede tener 2 o mas telefonos,
en el formulario aparece:

RED: 5544-6677 5544-8866

al actualizar pasa esto:

RED: 5544-6677 5544-8866 5544-6677 5544-8866

y en la base de datos el registro hace esto:

id_telefono telefono id_persona

1 5544-6677 Á 5544-8866 Á 10001

tambien me agrega un espacio antes del primer numero del telefono

esto esta en el formulario:

Código PHP:
Ver original
  1. <tr>
  2.         <td height="44">Red:</td>
  3.         <td><input size="70" name='telefono'  type='text' maxlength='50' value=" <?php
  4.             while( $i >= 1 ) {
  5.                 echo $telefono;
  6.       ?>
  7.       &nbsp;
  8.       <?php
  9.     $i--;
  10.     }
  11.       ?>"></td>
  12.       </tr>

me habia ocurrido al parecido con el nombre y tuve que poner en un input el nombre en otro el apellido paterno y en otro el materno
  #2 (permalink)  
Antiguo 28/05/2014, 11:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

¿Y la sentencia SQL con la que actualizas los datos? ¿Y el script que utilizas para ello?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 28/05/2014, 11:32
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

solo utilizo esto para actualizar:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include("1.php");
  5.    
  6.     if(isset($_POST["submit"])){
  7.      $id_persona = $_POST['id_persona'];
  8.      $id_titulo = $_POST['id_titulo'];
  9.      $id_puesto = $_POST['id_puesto'];
  10.      $id_adscripcion = $_POST['id_adscripcion'];
  11.      $id_domicilio = $_POST['id_domicilio'];
  12.      $id_telefono = $_POST['id_telefono'];
  13.      $titulo = $_POST['titulo'];
  14.      $nombre = $_POST['nombre'];
  15.      $paterno = $_POST['paterno'];
  16.      $materno = $_POST['materno'];
  17.      $puesto = $_POST['puesto'];
  18.      $adscripcion = $_POST['adscripcion'];
  19.      $domicilio = $_POST['domicilio'];
  20.      $correo = $_POST['correo'];
  21.      $telefono = $_POST['telefono'];
  22.      
  23.    $query = "UPDATE dir_persona, dir_telefono SET  
  24.    id_titulo = '$titulo',
  25.     nombre = '$nombre',
  26.     paterno = '$paterno',
  27.     materno = '$materno',
  28.     id_puesto = '$puesto',
  29.     id_adscripcion = '$adscripcion',
  30.     id_domicilio = '$domicilio',
  31.     correo = '$correo',
  32.     telefono = '$telefono'
  33.   WHERE dir_persona.id_persona = '$id_persona' AND
  34.     dir_telefono.id_telefono = '$id_telefono'";
  35.    
  36.     $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  37.    
  38.     header("location: ./detalles1.php?id=$id_persona");
  39.    
  40. //  echo "Se han modificado los datos del usuario
  41. //  <p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p> ";
  42.  
  43.     exit;
  44.  
  45. }
  46.  
  47. ?>
  #4 (permalink)  
Antiguo 28/05/2014, 11:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

A primera vista, pareciera todo correcto, excepto porque deberías indicar por cada campo la tabla a la que pertenece, es decir, dir_persona.id_titulo = '$titulo' y lo mismo para los demás campos.

Si esa no es la solución, imprime el valor de $query y pégalo en phpMyadmin, así sabrás si la sentencia tiene la forma correcta y hace lo que quieres.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 28/05/2014, 11:50
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

intente con lo que pusiste y no lo corrigio y para lo de $query estoy utilizando una base que utiliza mysql en un servidor, como entro a phpMyadmin?
  #6 (permalink)  
Antiguo 28/05/2014, 11:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

Normalmente a través de http://localhost/phpMyadmin o http://localhost/phpmyadmin, siempre y cuando trabajes en un servidor local, si no, cambia el localhost por el nombre del servidor que estés usando. ¿Cómo fue que creaste la base de datos si no sabes acceder a phpMyadmin?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 28/05/2014, 12:01
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

yo no cree la base de datos (es un caos) esta en un servidor, internte entrar desde el servidor y me dice "Server error in application"
  #8 (permalink)  
Antiguo 28/05/2014, 12:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

Si no puedes acceder, ¿cómo conoces las estructuras de las tablas?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 28/05/2014, 12:05
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

las veo desde MySQL Query Browser
  #10 (permalink)  
Antiguo 28/05/2014, 12:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros



Entonces prueba la sentencia ahí.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 28/05/2014, 12:13
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros



lo tengo que poner en el recuadro arriba de los registros?
  #12 (permalink)  
Antiguo 28/05/2014, 12:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

Claro, luego le das clic al botón que se parece al de 'Play' en los reproductores de música.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #13 (permalink)  
Antiguo 28/05/2014, 12:24
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

me dice que hay un error en la sintaxis SQL
  #14 (permalink)  
Antiguo 28/05/2014, 12:25
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: duplicados al actualizar registros

Entonces ahora ya sabes qué corregir.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 28/05/2014, 12:28
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

si, muchas gracias
  #16 (permalink)  
Antiguo 28/05/2014, 13:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duplicados al actualizar registros

Cita:
Iniciado por portal47 Ver Mensaje
me dice que hay un error en la sintaxis SQL
Se te metio un caracter de más al tipear la query, pero eso no explica la duplicación de datos.
En todo caso lo que yo veo es quie no estás estableciendo la relaicón entre ambas tablas, (personas y telefonos), por lo que si no tienen un cmapo que los relacione, que tenga el mismo nombre en ambas tablas, se está produciendo un producto cartesiano con cosecuencias desastrosas.

¿Cómo relacionas las tablas? ¿QUé campo tienen en común, es decir, cómo sabes que un teléfono es de una persona determinada?
No veo la relación en la query y no puedo verla en esa captura de pantalla.
__________________
¿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 28/05/2014, 13:30
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

la relacion que tienen todas las tablas es el "id_persona"
  #18 (permalink)  
Antiguo 28/05/2014, 13:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duplicados al actualizar registros

Cita:
Iniciado por portal47 Ver Mensaje
la relacion que tienen todas las tablas es el "id_persona"
Ok. Genial.. no lo estás poniendo en la query:
Código MySQL:
Ver original
  1. UPDATE dir_persona D INNER JOIN dir_telefono T ON D.id_persona = T.id_persona
  2. SET  
  3.    id_titulo = '$titulo',
  4.     nombre = '$nombre',
  5.     paterno = '$paterno',
  6.     materno = '$materno',
  7.     id_puesto = '$puesto',
  8.     id_adscripcion = '$adscripcion',
  9.     id_domicilio = '$domicilio',
  10.     correo = '$correo',
  11.     telefono = '$telefono'
  12. WHERE D.id_persona = '$id_persona'
  13.     AND T.id_telefono = '$id_telefono'
En todo caso, así como está planteado se asume que estás actualizando un único teléfono, y no agregando un segundo teléfono.
Tal pareciera que pones en el mismo registro los dos teléfnos, en ese único campo.

¿Es así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 28/05/2014, 13:46
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

lo que lo hace complicado creo es la tabla por esto:

id_telefono-------- telefono-----------tipo----------- id_persona

123-------------------- 5544-6677-----------1-------------- 10001
124-------------------- 5544-9839-----------1-------------- 10001
125-------------------- 5544-2740-----------3-------------- 10001

una persona puede tener 2 telefononos del mismo tipo y por eso no es tan facil mostrar sus telefonos del mismo tipo y aparte obtener el id de los 2 telefonos

creo ese es el problema ya que no se como obtener el id de los 2 telefonos si aparecen en el mismo input

tuve un problema parecido con el nombre completo, lo solucione separando el nombre y puse cada apellido en un input diferente
  #20 (permalink)  
Antiguo 28/05/2014, 13:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duplicados al actualizar registros

Creo que tee estás complicando entre lo que debe mostrar la vista, y lo que necesitas para obtener los datos. No es lo mismo.
En realidad para obtener todos los teléfnos no necesitas el ID del teléfonbo. Sölo necesitas el ID de la persona.
Si quieres hacer cambios sobre un único teléfno, tienes dos opciones: O su ID o el teléfono más el ID de la persona, pero el ID del telefono lo puedes obtener con los otros dos datos.

Lo que quiero expresar es que no confundas la lógica de lo que se muestra en pantalla, con el codebehind que necesitas para cumplirla. Hay cosas que debes resolver por detrás de lo visible.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #21 (permalink)  
Antiguo 28/05/2014, 13:57
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

entonces, estoy obteniendo el id_persona y tipo(telefono) para mostrar el telefono y solo muestra 1 telefono

utilizo esto para que me muestre el segundo telefono del mismo tipo:
Código PHP:
Ver original
  1. <tr><td height="30"><input size="45" name='telefono'  type='text' maxlength='50' value=" <?php
  2.             while( $i >= 1 ) {
  3.                 echo $telefono;
  4.                 ?>
  5.       /
  6.       <?php
  7.     $i--;
  8.     }
  9.       ?>"></td>
  10.       </tr>

como obtengo el id de los telefonos?
al intentar recoger el id del telefono obtiene el del primer telefono
  #22 (permalink)  
Antiguo 28/05/2014, 14:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: duplicados al actualizar registros

Código PHP:
Ver original
  1. <tr><td height="30"><input size="45" name='telefono'  type='text' maxlength='50' value=" <?php
  2.             while( $i >= 1 ) {
  3.                 echo $telefono;
  4.                 ?>
  5.       /
  6.       <?php
  7.     $i--;
  8.     }
  9.       ?>"></td>
  10.       </tr>
Y seré curioso... ¿Por qué pones que sea mayor o igual a 1?¿Cuándo cambia de 2 a 1, o de 1 a 2?
postea el código completo como para entender la lógica de lo que stás haciendo, porque ese código no alcanza para ver donde está el error.

Cita:
como obtengo el id de los telefonos?
Con el id_persona, y eventualmente el tipo de telefono.
Cita:
al intentar recoger el id del telefono obtiene el del primer telefono
POrque el ID del telefono es único, y solo devolverá un único teléfono... Creo que eso es lo que muestra tu ejemplo.
Diferente sería si fuese el TIPO de telefono.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #23 (permalink)  
Antiguo 30/05/2014, 12:31
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

uno las tablas:
Código PHP:
Ver original
  1. <div class="derecho">
  2.  
  3.                     <?php
  4.                    
  5.                     include("conecta.php");
  6.                     include("acceso.php");
  7.                     ?>
  8.  
  9.  
  10.                      <?php
  11.                      
  12.                     $link = connectToDB();
  13.                    
  14.                     $dt = $_GET["ads"];
  15.                     $cl = $_GET['id'];
  16.                     $t = $dt.$cl;
  17.                    
  18.                     $q1 = "SELECT id_persona, siglas, id_titulo, nombre,paterno,materno
  19.                             FROM dir_titulo
  20.                             LEFT JOIN dir_persona USING (id_titulo)
  21.                             where id_persona = '".$t."' ";
  22.                            
  23.                     $q2 = "SELECT id_persona, puesto, id_puesto
  24.                               FROM dir_puesto
  25.                               LEFT JOIN dir_persona USING (id_puesto)
  26.                               WHERE id_persona = '".$t."' ";
  27.                              
  28.                     $q3 = "SELECT id_persona, adscripcion, id_adscripcion
  29.                             FROM dir_adscripcion
  30.                             LEFT JOIN dir_persona USING (id_adscripcion)
  31.                             WHERE id_persona = '".$t."'";
  32.                            
  33.                     $q4 = "SELECT id_persona, domicilio, id_domicilio
  34.                             FROM dir_domicilio
  35.                             LEFT JOIN dir_persona USING (id_domicilio)
  36.                             WHERE id_persona = '".$t."'";
  37.                            
  38.                     $q5 = "SELECT correo
  39.                             FROM dir_titulo
  40.                             LEFT JOIN dir_persona USING (id_titulo)
  41.                             where id_persona = '".$t."' ";
  42.                            
  43.                     $q6 = "SELECT id_telefono,telefono,id_tipo FROM dir_telefono
  44.                             WHERE id_persona = '".$t."' and id_tipo = 1";
  45.                            
  46.                     $q60 = "SELECT id_telefono,telefono,id_tipo FROM dir_telefono
  47.                             WHERE id_persona = '".$t."' and id_tipo = 3";
  48.                            
  49.                     $q61 = "SELECT count(*) FROM dir_telefono WHERE id_persona = '".$t."' and id_tipo = 1 ";
  50.                    
  51.                     $q62 = "SELECT count(*) FROM dir_telefono WHERE id_persona = '".$t."' and id_tipo = 3 ";
  52.  
  53.                     $r1 = mysql_query($q1)
  54.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  55.                                
  56.                     $r2 = mysql_query($q2)
  57.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  58.                    
  59.                     $r3 = mysql_query($q3)
  60.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  61.                    
  62.                     $r4 = mysql_query($q4)
  63.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  64.                    
  65.                     $r5 = mysql_query($q5)
  66.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  67.                    
  68.                     $r6 = mysql_query($q6)
  69.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  70.                     $r60 = mysql_query($q60)
  71.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  72.                     $r61 = mysql_query($q61)
  73.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  74.                     $r62 = mysql_query($q62)
  75.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  76.                    
  77.                     $c1 = mysql_fetch_array($r1, MYSQL_BOTH);
  78.                     $c2 = mysql_fetch_array($r2, MYSQL_BOTH);
  79.                     $c3 = mysql_fetch_array($r3, MYSQL_BOTH);
  80.                     $c4 = mysql_fetch_array($r4, MYSQL_BOTH);
  81.                     $c5 = mysql_fetch_array($r5, MYSQL_BOTH);
  82.                     $c6 = mysql_fetch_array($r6, MYSQL_BOTH);
  83.                     $c60 = mysql_fetch_array($r60, MYSQL_BOTH);
  84.                     $c61 = mysql_fetch_array($r61, MYSQL_BOTH);
  85.                     $c62 = mysql_fetch_array($r62, MYSQL_BOTH);
  86.                    
  87.                     $siglas = $c1['siglas'];
  88.                     $id_titulo = $c1['id_titulo'];
  89.                     $nombre = $c1['nombre'];
  90.                     $paterno = $c1['paterno'];
  91.                     $materno = $c1['materno'];
  92.                     $puesto = $c2['puesto'];
  93.                     $id_puesto = $c2['id_puesto'];
  94.                     $adscripcion = $c3['adscripcion'];
  95.                     $id_adscripcion = $c3['id_adscripcion'];
  96.                     $domicilio = $c4['domicilio'];
  97.                     $id_domicilio = $c4['id_domicilio'];
  98.                     $correo = $c5['correo'];
  99.                     $telefono = $c6['telefono'];
  100.                     $id_telefono = $c6['id_telefono'];
  101.                     $telefono1 = $c60['telefono'];
  102.                     $id_telefono1 = $c60['id_telefono'];
  103.                     $i = $c61['count(*)'];
  104.                     $j = $c62['count(*)'];                 
  105.                    
  106.                
  107.                    
  108.                     ?>
  #24 (permalink)  
Antiguo 30/05/2014, 12:32
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

muestro los datos en un formulario:
Código PHP:
Ver original
  1. <form name='actualiza' method='post' action='ejecuta.php'>
  2.         <table class="tabla2">
  3.         <tr>
  4.         <h3>Formulario de Modificación</h3><br>
  5.         </tr>
  6.         <tr>
  7.         <td><input size="70" name='id_persona'  type='hidden' maxlength='90' value="<?php echo $cl; ?>"></td>
  8.       </tr>
  9.       <tr>
  10.         <td><input size="70" name='id_titulo'  type='hidden' maxlength='90' value="<?php echo $id_titulo; ?>"></td>
  11.         </tr>
  12.         <tr>
  13.         <td height="20"> Titulo:</td>
  14.         </tr>
  15.         <tr>
  16. <td height="30">
  17.      
  18. <?php
  19.       $result = mysql_query("SELECT * FROM dir_titulo ORDER BY titulo ASC");
  20. ?>
  21.    
  22.      
  23. <select name="titulo" style="width: 300px;">
  24. <?php
  25. while($row = mysql_fetch_array($result)) {
  26.  
  27. $valor = $row["id_titulo"] ;
  28. $nom = $row["titulo"];
  29. $sel = ($id_titulo == $row["id_titulo"]) ? ' selected="selected"' : '';
  30. echo "<option ".$sel." value=".$valor." >".$nom."</option>";
  31. }
  32. ?>
  33. </select>
  34.  
  35. </td>
  36. </tr>
  37.       </tr>
  38.       <tr><td height="15"> Nombre:</td></tr>
  39.         <tr><td align="left" height="30"><input size="45" name='nombre'  type='text' maxlength='90' value="<?php echo $nombre; ?>"></td></tr>
  40.        
  41.       <tr><td height="15">Paterno:</td></tr>
  42.         <tr><td align="left" height="30"><input size="45" name='paterno'  type='text' maxlength='90' value="<?php echo $paterno; ?>"></td></tr>
  43.        
  44.       <tr><td height="15">Materno:</td></tr>
  45.         <tr><td height="30"><input size="45" name='materno'  type='text' maxlength='90' value="<?php echo $materno; ?>"></td></tr>
  46.  
  47.         <tr><td><input size="45" name='id_puesto'  type='hidden' maxlength='90' value="<?php echo $id_puesto; ?>"></td></tr>
  48.      
  49.       <tr><td height="15" height="30">Puesto:</td></tr>
  50.         <tr>
  51.       <td height="30">
  52.      
  53. <?php
  54.       $result = mysql_query("SELECT * FROM dir_puesto ORDER BY puesto ASC");
  55. ?>
  56.      
  57. <select name="puesto" style="width:300px;">
  58. <?php
  59. while($row = mysql_fetch_array($result)) {
  60.  
  61. $valor = $row["id_puesto"] ;
  62. $nom = $row["puesto"];
  63. $sel = ($id_puesto == $row["id_puesto"]) ? ' selected="selected"' : '';
  64. echo "<option ".$sel." value=".$valor." >".$nom."</option>";
  65. }
  66. ?>
  67. </select>
  68.  
  69. </td>
  70. </tr>
  71.      
  72.       <tr>     
  73.         <td><input size="50" name='id_adscripcion'  type='hidden' maxlength='90' value="<?php echo $id_adscripcion; ?>"></td>
  74.       </tr>
  75. <tr>
  76.         <td height="15" height="30">Adscripción:</td>
  77.         </tr>
  78.         <tr>
  79.       <td height="30">
  80.      
  81. <?php
  82.       $result = mysql_query("SELECT * FROM dir_adscripcion ORDER BY adscripcion ASC");
  83. ?>
  84.      
  85. <select name="adscripcion" style="width: 300px;">
  86. <?php
  87. while($row = mysql_fetch_array($result)) {
  88.  
  89. $valor = $row["id_adscripcion"] ;
  90. $nom = $row["adscripcion"];
  91. $sel = ($id_adscripcion == $row["id_adscripcion"]) ? ' selected="selected"' : '';
  92. echo "<option ".$sel." value=".$valor." >".$nom."</option>";
  93. }
  94. ?>
  95. </select>
  96.  
  97. </td>
  98. </tr>
  99.       <tr>
  100.         <td><input size="50" name='id_domicilio'  type='hidden' maxlength='90' value="<?php echo $id_domicilio; ?>"></td>
  101.       </tr>
  102.       <tr>
  103.         <td height="15" height="30">Domicilio:</td>
  104.         </tr>
  105.       <tr>
  106.           <td height="30" >
  107.      
  108. <?php
  109.       $result = mysql_query("SELECT * FROM dir_domicilio ORDER BY domicilio ASC");
  110. ?>
  111.      
  112. <select name="domicilio" style="width: 300px;">
  113. <?php
  114. while($row = mysql_fetch_array($result)) {
  115.  
  116. $valor = $row["id_domicilio"] ;
  117. $nom = $row["domicilio"];
  118. $sel = ($id_domicilio == $row["id_domicilio"]) ? ' selected="selected"' : '';
  119. echo "<option ".$sel." value=".$valor." >".$nom."</option>";
  120. }
  121. ?>
  122. </select>
  123.  
  124. </td>
  125. </tr>
  126. <tr>
  127.         <td><input size="50" name='id_correo'  type='hidden' maxlength='90' value="<?php echo $cl; ?>"></td>
  128.       </tr>
  129.       <tr><td height="15">Correo:</td></tr>
  130.         <tr><td height="30"><input size="45" name='correo'  type='text' maxlength='90' value="<?php echo $correo; ?>"></td></tr>
  131.  
  132.         <tr><td><input size="50" name='id_telefono'  type='hidden' maxlength='40' value="<?php echo $id_telefono; ?>"></td></tr>   
  133.       <tr><td height="15">Red:</td></tr>
  134.         <tr><td><input size="50" name='id_telefono'  type='hidden' maxlength='40' value="<?php echo $id_telefono; ?>"></td></tr>   
  135.       <tr><td height="15">Red:</td></tr>
  136.         <tr><td><input size="70" name='tel'  type='text' maxlength='40' value="<?php echo $telefono; ?>"></td>
  137.       </tr>
  138.       <tr>
  139.         <td><input size="50" name='id_telefono1'  type='hidden' maxlength='40' value="<?php echo $id_telefono1; ?>"></td>
  140.       </tr>
  141.       <tr><td height="15">Fax:</td></tr>
  142.         <tr><td height="40"><input size="45" name='telefono1'  type='text' maxlength='40' value="<?php echo $telefono1; ?>"></td></tr>
  143.       <tr>
  144.         <td align="left"><input type="button" name="Volver" value="Volver" onClick="javascript:history.back(-1)">
  145.         <input type="reset" name="Restablecer">
  146.         <input type='submit' name='submit' value='Guardar Cambios'></td>
  147.       </tr>
  148.     </table>

aqui esta el update:
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. include("1.php");
  5.    
  6.     if(isset($_POST["submit"])){
  7.      $id_persona = $_POST['id_persona'];
  8.      $id_titulo = $_POST['id_titulo'];
  9.      $id_puesto = $_POST['id_puesto'];
  10.      $id_adscripcion = $_POST['id_adscripcion'];
  11.      $id_domicilio = $_POST['id_domicilio'];
  12.      $id_telefono = $_POST['id_telefono'];
  13.      $titulo = $_POST['titulo'];
  14.      $nombre = $_POST['nombre'];
  15.      $paterno = $_POST['paterno'];
  16.      $materno = $_POST['materno'];
  17.      $puesto = $_POST['puesto'];
  18.      $adscripcion = $_POST['adscripcion'];
  19.      $domicilio = $_POST['domicilio'];
  20.      $correo = $_POST['correo'];
  21.      $telefono = $_POST['telefono'];
  22.      
  23.    $query = "UPDATE  dir_persona D INNER JOIN dir_telefono T ON D.id_persona = T.id_persona
  24.  SET
  25.    id_titulo = '$titulo',
  26.    nombre = '$nombre',
  27.    paterno = '$paterno',
  28.    materno = '$materno',
  29.    id_puesto = '$puesto',
  30.    id_adscripcion = '$adscripcion',
  31.    id_domicilio = '$domicilio',
  32.    correo = '$correo',
  33.    telefono = '$telefono'
  34.   WHERE D.id_persona = '$id_persona' AND
  35.     T.id_telefono = '$id_telefono'";
  36.    
  37.     $result=mysql_query($query,$link) or die("Error: ".mysql_error());
  38.    
  39.     header("location: ./detalles1.php?id=$id_persona");
  40.    
  41. //  echo "Se han modificado los datos del usuario
  42. //  <p><a href='javascript:history.go(-1)'>VOLVER ATRÁS</a></p> ";
  43.  
  44.     exit;
  45.  
  46. }
  47.  
  48. ?>
  #25 (permalink)  
Antiguo 30/05/2014, 12:32
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

uno las tablas:
Código PHP:
Ver original
  1. <div class="derecho">
  2.  
  3.                     <?php
  4.                    
  5.                     include("conecta.php");
  6.                     include("acceso.php");
  7.                     ?>
  8.  
  9.  
  10.                      <?php
  11.                      
  12.                     $link = connectToDB();
  13.                    
  14.                     $dt = $_GET["ads"];
  15.                     $cl = $_GET['id'];
  16.                     $t = $dt.$cl;
  17.                    
  18.                     $q1 = "SELECT id_persona, siglas, id_titulo, nombre,paterno,materno
  19.                             FROM dir_titulo
  20.                             LEFT JOIN dir_persona USING (id_titulo)
  21.                             where id_persona = '".$t."' ";
  22.                            
  23.                     $q2 = "SELECT id_persona, puesto, id_puesto
  24.                               FROM dir_puesto
  25.                               LEFT JOIN dir_persona USING (id_puesto)
  26.                               WHERE id_persona = '".$t."' ";
  27.                              
  28.                     $q3 = "SELECT id_persona, adscripcion, id_adscripcion
  29.                             FROM dir_adscripcion
  30.                             LEFT JOIN dir_persona USING (id_adscripcion)
  31.                             WHERE id_persona = '".$t."'";
  32.                            
  33.                     $q4 = "SELECT id_persona, domicilio, id_domicilio
  34.                             FROM dir_domicilio
  35.                             LEFT JOIN dir_persona USING (id_domicilio)
  36.                             WHERE id_persona = '".$t."'";
  37.                            
  38.                     $q5 = "SELECT correo
  39.                             FROM dir_titulo
  40.                             LEFT JOIN dir_persona USING (id_titulo)
  41.                             where id_persona = '".$t."' ";
  42.                            
  43.                     $q6 = "SELECT id_telefono,telefono,id_tipo FROM dir_telefono
  44.                             WHERE id_persona = '".$t."' and id_tipo = 1";
  45.                            
  46.                     $q60 = "SELECT id_telefono,telefono,id_tipo FROM dir_telefono
  47.                             WHERE id_persona = '".$t."' and id_tipo = 3";
  48.                            
  49.                     $q61 = "SELECT count(*) FROM dir_telefono WHERE id_persona = '".$t."' and id_tipo = 1 ";
  50.                    
  51.                     $q62 = "SELECT count(*) FROM dir_telefono WHERE id_persona = '".$t."' and id_tipo = 3 ";
  52.  
  53.                     $r1 = mysql_query($q1)
  54.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  55.                                
  56.                     $r2 = mysql_query($q2)
  57.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  58.                    
  59.                     $r3 = mysql_query($q3)
  60.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  61.                    
  62.                     $r4 = mysql_query($q4)
  63.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  64.                    
  65.                     $r5 = mysql_query($q5)
  66.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  67.                    
  68.                     $r6 = mysql_query($q6)
  69.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  70.                     $r60 = mysql_query($q60)
  71.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  72.                     $r61 = mysql_query($q61)
  73.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  74.                     $r62 = mysql_query($q62)
  75.                     or die ("No se pudo realizar la consulta. " . mysql_error());
  76.                    
  77.                     $c1 = mysql_fetch_array($r1, MYSQL_BOTH);
  78.                     $c2 = mysql_fetch_array($r2, MYSQL_BOTH);
  79.                     $c3 = mysql_fetch_array($r3, MYSQL_BOTH);
  80.                     $c4 = mysql_fetch_array($r4, MYSQL_BOTH);
  81.                     $c5 = mysql_fetch_array($r5, MYSQL_BOTH);
  82.                     $c6 = mysql_fetch_array($r6, MYSQL_BOTH);
  83.                     $c60 = mysql_fetch_array($r60, MYSQL_BOTH);
  84.                     $c61 = mysql_fetch_array($r61, MYSQL_BOTH);
  85.                     $c62 = mysql_fetch_array($r62, MYSQL_BOTH);
  86.                    
  87.                     $siglas = $c1['siglas'];
  88.                     $id_titulo = $c1['id_titulo'];
  89.                     $nombre = $c1['nombre'];
  90.                     $paterno = $c1['paterno'];
  91.                     $materno = $c1['materno'];
  92.                     $puesto = $c2['puesto'];
  93.                     $id_puesto = $c2['id_puesto'];
  94.                     $adscripcion = $c3['adscripcion'];
  95.                     $id_adscripcion = $c3['id_adscripcion'];
  96.                     $domicilio = $c4['domicilio'];
  97.                     $id_domicilio = $c4['id_domicilio'];
  98.                     $correo = $c5['correo'];
  99.                     $telefono = $c6['telefono'];
  100.                     $id_telefono = $c6['id_telefono'];
  101.                     $telefono1 = $c60['telefono'];
  102.                     $id_telefono1 = $c60['id_telefono'];
  103.                     $i = $c61['count(*)'];
  104.                     $j = $c62['count(*)'];                 
  105.                    
  106.                
  107.                    
  108.                     ?>
  #26 (permalink)  
Antiguo 30/05/2014, 12:33
 
Fecha de Ingreso: abril-2014
Mensajes: 141
Antigüedad: 10 años
Puntos: 1
Respuesta: duplicados al actualizar registros

para mostrar el telefono utilizo el "tipo" y "id_persona", pero algunas personas tienen hasta 3 telefonos del "tipo1", lo de:
Código PHP:
Ver original
  1. ><td height="30"><input size="45" name='telefono'  type='text' maxlength='50' value=" <?php
  2.             while( $i >= 1 ) {
  3.                 echo $telefono;
  4.                 ?>
  5.       /
  6.       <?php
  7.     $i--;
  8.     }
  9. ?>"></td>
lo utilice para imprimir los demas telefonos del mismo tipo y persona, solo lo estaba probando en el formulario

$telefono es para imprimir del tipo 1
$telefono1 es para imprimir del tipo 3
  #27 (permalink)  
Antiguo 30/05/2014, 14:33
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: duplicados al actualizar registros

Una observacion .......... tu sabes lo que es "reusar codigo" ?

Cita:
$r1 = mysql_query($q1)
or die ("No se pudo realizar la consulta. " . mysql_error());

$r2 = mysql_query($q2)
or die ("No se pudo realizar la consulta. " . mysql_error());

$r3 = mysql_query($q3)
or die ("No se pudo realizar la consulta. " . mysql_error());

$r4 = mysql_query($q4)
or die ("No se pudo realizar la consulta. " . mysql_error());

$r5 = mysql_query($q5)
or die ("No se pudo realizar la consulta. " . mysql_error());

$r6 = mysql_query($q6)
or die ("No se pudo realizar la consulta. " . mysql_error());
$r60 = mysql_query($q60)
or die ("No se pudo realizar la consulta. " . mysql_error());
$r61 = mysql_query($q61)
or die ("No se pudo realizar la consulta. " . mysql_error());
$r62 = mysql_query($q62)
or die ("No se pudo realizar la consulta. " . mysql_error());

$c1 = mysql_fetch_array($r1, MYSQL_BOTH);
$c2 = mysql_fetch_array($r2, MYSQL_BOTH);
$c3 = mysql_fetch_array($r3, MYSQL_BOTH);
$c4 = mysql_fetch_array($r4, MYSQL_BOTH);
$c5 = mysql_fetch_array($r5, MYSQL_BOTH);
$c6 = mysql_fetch_array($r6, MYSQL_BOTH);
$c60 = mysql_fetch_array($r60, MYSQL_BOTH);
$c61 = mysql_fetch_array($r61, MYSQL_BOTH);
$c62 = mysql_fetch_array($r62, MYSQL_BOTH)
__________________
Salu2!

Etiquetas: duplicados, formulario, registro, registros
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 01:45.