Foros del Web » Programando para Internet » PHP »

actualizar Campos con id repetidos

Estas en el tema de actualizar Campos con id repetidos en el foro de PHP en Foros del Web. Hola que tal tengo el siguiente problema: Tengo una tabla en mi base de datos donde el usuario le puede agregar varios trámites a una ...
  #1 (permalink)  
Antiguo 10/08/2016, 00:02
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
actualizar Campos con id repetidos

Hola que tal tengo el siguiente problema:

Tengo una tabla en mi base de datos donde el usuario le puede agregar varios trámites a una persona y en la bd lo guarda con el id de la persona que se lo asigna.
Hasta ahí todo va bien.

Mi problema es que al momento de modificar una persona que tiene dos o más id me pone lo mismo a los dos Campos. Estoy haciendo lo siguiente:

Código PHP:
Update tratamites set nombre='$tramite'tipo='$tipo' where id_tramite=.id 
Lo que hace esto es que a los dos registros le pone exactamente lo mismo, y lo que pretendo hacer es que solo se lo ponga al trámite que está modificando... Espero haberme entendido y agradezco mucho su ayuda por favor!!!! Gracias!!!
  #2 (permalink)  
Antiguo 10/08/2016, 04:36
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: actualizar Campos con id repetidos

Debes de modificar el registro filtrando por su PK no sólo por su FK.

Si tu tabla no tiene un primary key entonces es un error de diseño y esa tabla es una tabla de datos basura.
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 10/08/2016, 07:05
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: actualizar Campos con id repetidos

si te esta pasando eso es porque tu tabla esta mal diseñada como ya te dijeron, coloca aqui la estructura de tu tabla, ahora la pregunta es ¿Porque tienes id repetidas en el registro de tramites?, eso no tiene sentido, lo más logico seria algo asi:

id > id_tramite

donde id es un autoincremental y la id_tramite es un numero irrepetible o consecutivo de acuerdo a como lo programes.

lo otro es que parece estas guardando la id de la persona en id_tramite (ERROR) y creo que es alli donde esta el problema

id (autoincremental)
id_tramite (numero del tramite)
id_usuario (id del usuario o cliente)

podria ser una propuesta y de esa manera el sistema sabe que tramites son de un determinado usuario pero al mismo tiempo diferencia el tramite que estas editando por su propio numero.
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 10/08/2016, 07:26
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: actualizar Campos con id repetidos

Cita:
donde id es un autoincremental y la id_tramite es un numero irrepetible o consecutivo de acuerdo a como lo programes.
En ese contexto el campo ID es irrelevante y superfluo. No se necesita desde el momento que ID_TRAMITE cumple con los requerimientos de PK (unicidad, identificación univoca y no nulo).
Una PK no necesita ser ni numérica ni autoincremental, sólo cumplir con as condiciones antedichas. Los campos autoincrementales son, la mayoría de las veces, un parche para estructuras de datos mal definidas, o simplemente por acostumbramiento de los desarrolladores a su uso. NO SON parte necesaria del modelo relacional de BBDD, sino una solucion para la 3FN si no se ha llegado a una CC.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 10/08/2016, 11:33
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: actualizar Campos con id repetidos

Hola, les agradezco a todos por sus respuestas. parece que no me hice explicar bien.

Tengo la siguiente tabla:

Tramites
id_ tramite(pk, autoincrementable), id_cliente (int), tramite (text), tipo (text)

El usuario del sistema puede agregarle los tramites que sea a un cliente y los almacena con el mismo id_cliente para todos los tramites.

Mi problema ahora es que estoy haciendo el formulario de modificación del tramite, yo lo hago de la siguiente manera:

Código PHP:
Ver original
  1. if(isset($_POST['tramite'])){
  2.  
  3.     $sql="UPDATE tramite SET
  4.        tramite=      '".$_POST['tramite']."',
  5.        tipo= '".$_POST['tipo']."'        
  6.      WHERE id_cliente=".$id_cliente;
  7.  
  8.       $res= mysql_query(utf8_decode($sql));
  9.       if(!$res)
  10.       {
  11.       die('No se pudo actualizar '.mysql_error());
  12.       }
  13.       echo "Registro actualizado, Tratamiento\n";
  14.  }

Esto me hace que a todos los id del cliente les pone el mismo tramite que edita por primera vez, cuando lo que quiero es que edite nada más actualice el tramite que esta editando, no sé si me explico o si tengo mi tabla mal, muchas gracias!!
  #6 (permalink)  
Antiguo 10/08/2016, 12:10
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: actualizar Campos con id repetidos

Hola amigo, creo que si te diste a entender perfectamente desde la primera vez y lo que te han comentado es correcto.
En mi opinión, tu tabla de trámites no esta mal, el detalle es a la hora de actualizar.
Si quieres actualizar cierto trámite, debes de actualizarlo mediante su id (en tu caso, el campo id_tramite); el id_cliente sería solo para corroborar que efectivamente dicho trámite corresponde al cliente..
Sólo es cosa de modificar tu condición
(Actualizame cuando el id_tramite sea igual a 'x' Y id_cliente sea igual a 'y')
Saludos!!
  #7 (permalink)  
Antiguo 10/08/2016, 12:34
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: actualizar Campos con id repetidos

Hola German te agradezco por tu tiempo, ya entendí lo que me has dicho lo hago de la siguiente manera:

Código PHP:

if(isset($_POST['tramite'])){
 
    
$sql="UPDATE tramite SET 
        tramite=      '"
.$_POST['tramite']."', 
        tipo= '"
.$_POST['tipo']."'        
      WHERE id_cliente='$id_cliente' and id_tratramite="

Solo que ahora no sé como traerme el id_tratemiento, me podrías orientar en esa parte por favor!!!! gracias!!
  #8 (permalink)  
Antiguo 10/08/2016, 13:01
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: actualizar Campos con id repetidos

Hola amigo,
depende como estés listando tus tramites, y como estás mandando a actualizarlos..
Asumiendo q los estás listando mediante PHP, en donde estes llamando a tu función "Actualizar".. debes de pasar el parámetro del id del tramite..
Ahora que lo pienso, de la misma forma en que estás mandando tu id_cliente, puedes mandar tu id_tramite, si tienes algún problema puedes poner como estás listando tus tramites y la forma en que estas llamando a tu función de actualizar y vemos como podemos ayudarte ;)
Saludos!!
  #9 (permalink)  
Antiguo 10/08/2016, 13:20
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: actualizar Campos con id repetidos

Cita:
Iniciado por german_1441 Ver Mensaje
Hola amigo,
depende como estés listando tus tramites, y como estás mandando a actualizarlos..
Asumiendo q los estás listando mediante PHP, en donde estes llamando a tu función "Actualizar".. debes de pasar el parámetro del id del tramite..
Ahora que lo pienso, de la misma forma en que estás mandando tu id_cliente, puedes mandar tu id_tramite, si tienes algún problema puedes poner como estás listando tus tramites y la forma en que estas llamando a tu función de actualizar y vemos como podemos ayudarte ;)
Saludos!!

Hola de nuevo.

Lo hice dentro de un while de la siguiente forma:

Código PHP:

while ($tramite=mysql_fetch_array($res_tramites)) {

            $a=$tramite['id_tramite'];  
            ?>
          <div class="form-group">
            <label for="tra">Tramiento</label>
            <input type="text" class="form-control" name="tra" value="<?php echo utf8_encode($tramite['tramite']); ?>">
          </div>

          <div class="form-group">
            <label for="tipo">Tipo Tramiento</label>
            <input type="text" class="form-control" name="tipo" value="<?php echo utf8_encode($tramite['tipo']); ?>">
          </div>

          <?php

           
//Inicia Actualizar tramite
            
if(isset($_POST['tramite'])){

            
$sql="UPDATE tramites 
            SET 
            tramite=
            '"
.$_POST['tramite']."', 
            tipo= 
            '"
.$_POST['tipo_tratamiento']."', 
            WHERE id_paciente='$id' and id_tramite='$a'"
;
Ahora lo que hace es que me guarda el primer campo en todos... Gracias
  #10 (permalink)  
Antiguo 10/08/2016, 13:56
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: actualizar Campos con id repetidos

Añade un input hidden con el id_tramite en el formulario y luego recogelo para poder usarlo en la consulta igual que el resto de datos.

Como ejemplo:

Código HTML:
Ver original
  1. <input type="hidden" name="id_tramite" value="<?php echo $tramite['id_tramite']; ?>">
__________________
Unset($vida['malRollo']);
  #11 (permalink)  
Antiguo 10/08/2016, 14:05
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: actualizar Campos con id repetidos

Cita:
Iniciado por xerifandtomas Ver Mensaje
Añade un input hidden con el id_tramite en el formulario y luego recogelo para poder usarlo en la consulta igual que el resto de datos.

Como ejemplo:

Código HTML:
Ver original
  1. <input type="hidden" name="id_tramite" value="<?php echo $tramite['id_tramite']; ?>">
Muchas gracias, fíjate que ya logre que me muestre bien el id_tramite. Ahora el problema que tengo que al momento de que actualiza en la tabla a todos los registros le pone el ultimo dato, no lo esta haciendo bien.. Alguna idea? Gracias!
  #12 (permalink)  
Antiguo 10/08/2016, 14:05
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: actualizar Campos con id repetidos

Ok, creo que te comiste algo de código.
Me quedan algunas dudas:

Estás recibiendo $_POST['tramite'], pero en que momento/archivo lo mandas?
En que momento ejecutas el $sql de UPDATE?
Estás ejecutando ese UPDATE dentro del while que recorre tus trámites?

Creo q en este caso, hará falta un poco más de código...
Saludos!
  #13 (permalink)  
Antiguo 10/08/2016, 14:13
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: actualizar Campos con id repetidos

Cita:
Iniciado por Fozz Ver Mensaje
Muchas gracias, fíjate que ya logre que me muestre bien el id_tramite. Ahora el problema que tengo que al momento de que actualiza en la tabla a todos los registros le pone el ultimo dato, no lo esta haciendo bien.. Alguna idea? Gracias!
Hola amigo, no habia visto tus respuestas anteriores,
y por fin como se llama tu campo? id_cliente o id_paciente??
otra cosa, quita la coma ( , ) que esta despues de
Código PHP:
tipo'".$_POST['tipo_tratamiento']."',//esta coma 
  #14 (permalink)  
Antiguo 10/08/2016, 14:32
 
Fecha de Ingreso: noviembre-2013
Ubicación: México
Mensajes: 94
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: actualizar Campos con id repetidos

Cita:
Iniciado por german_1441 Ver Mensaje
Hola amigo, no habia visto tus respuestas anteriores,
y por fin como se llama tu campo? id_cliente o id_paciente??
otra cosa, quita la coma ( , ) que esta despues de
Código PHP:
tipo'".$_POST['tipo_tratamiento']."',//esta coma 

Perdón tienes toda la razón mi campo se llama id_cliente, fue un error mío.

ya quite la coma(,) pero me sigue guardando el ultimo campo en todos los demás sigo analizando pero aun no puedo lograrlo... Agradecería tus ideas por favor!!
  #15 (permalink)  
Antiguo 12/08/2016, 11:35
 
Fecha de Ingreso: diciembre-2015
Ubicación: México
Mensajes: 280
Antigüedad: 8 años, 4 meses
Puntos: 20
Respuesta: actualizar Campos con id repetidos

Hola amigo,
en lo poco que puedo ver en tu código, concluyo que estás actualizando dentro de tu ciclo while a todos tus trámites, es decir:
1.- recibes un tramite y un tipo de tratamiento
2.- listas todos tus tramites
3.- actualizas para cada uno de tus registros de la tabla tramites el "tramite" y "tipo_tratamiento"

Es por eso que todos tus registros cambian a lo que estás enviando...
Lo que deberías hacer es actualizar solo el registro que estás mandando, y no dentro de un ciclo como lo estás haciendo, espero haberme explicada,
Saludos!

Etiquetas: campos, registro, repetidos, tabla
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 05:44.