Foros del Web » Programando para Internet » PHP »

Duda con actualizacion de tabla

Estas en el tema de Duda con actualizacion de tabla en el foro de PHP en Foros del Web. Hola Amigos!!! necesito si por favor me pueden ayudar con un inconveniente que se me presento y no se como solucionarlo tengo que actualizar una ...

  #1 (permalink)  
Antiguo 16/12/2011, 10:17
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Duda con actualizacion de tabla

Hola Amigos!!!
necesito si por favor me pueden ayudar con un inconveniente que se me presento
y no se como solucionarlo
tengo que actualizar una tabla con registros de otra tabla,
por ejemplo
de la tabla1 (que es de donde saco los registros) tengo los campos campo1 y campo2
y de la tabla2 (que es la que tengo que actualizar)
tengo los campos
campo1 - campo2 - campo3 - campo4
yo necesito actualizar el campo1 y el campo2 de tabla2
y campo3 y campo4 tambien de tabla2 , dejarlo con sus respectivos registros
cual seria la mejor forma de lograr esto?
ya que mi duda surge cuando tabla1 tiene registros nuevos o se ha eliminado uno
espero puedan ayudarme
Saludos y Muchas gracias!!!
  #2 (permalink)  
Antiguo 16/12/2011, 10:20
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: Duda con actualizacion de tabla

Hola.

Si he entendido bien, lo que quieres es tomar los datos de la tabla 1 y actualizarlos en la tabla 2.
Mediante SQL podrías hacer uso de la sentencia UPDATE para actualizar dichos campos.

Simplemente al UPDATE le dices qué campos vas a actualizar y con qué datos.

Puedes anidar sentencias SQL unas dentro de otras, por lo que dentro del UPDATE puedes utilizar un SELECT que tome el valor de la tabla 1.

Un saludo.
  #3 (permalink)  
Antiguo 16/12/2011, 10:31
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

Hola!!! Gracias por contestar
Si, esta muy claro lo que me comentas , pero el problema me surge cuando tabla 1 tiene registros nuevos entonces, como le digo a tabla 2 que hay un registro nuevo y que en vez de hacer un UPDATE haga un INSERT?
Por ejemplo
tabla 1
campo1 - campo2

tabla2
id - descripcion - fecha - hora

yo necesito actualizar campo1 y campo2 de tabla 1 con id y descripcion de tabla 2 y ademas , de alguna forma que no se, hacer un INSERT en tabla 2 SI EXISTE un registro nuevo en tabla 1 y tambien hacer un DELETE si se ha eliminado un registro en tabla 1
Como lo podria hacer?
Saludos y muchas gracias por ayudar a este novato
  #4 (permalink)  
Antiguo 16/12/2011, 12:01
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

Hola Amigos , alguna alma bondadosa que me de una mano?
Saludos!!!
  #5 (permalink)  
Antiguo 16/12/2011, 12:03
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

las tablas deben tener un campo en común por ejemplo el id, en tabla1 podría llamarse id_tabla2, es ahí en donde insetarás el id de la tabla2 de cada entrada.

ej:

usuarios
id - nombre

comentarios_de_usuarios
id_usuario - comentario

Donde id_usuario se obtiene de id, no se si se entiende la relación entre tablas.
__________________
la la la
  #6 (permalink)  
Antiguo 16/12/2011, 12:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

gracias por contestar
si si eso lo entiendo, hago un update por cada registro que tengo en tabla 1 y tabla 2, ya que los tengo relacionados con un id
pero que cuando tabla 1 tiene un id nuevo que tabla 2 no lo tiene
entonces como le digo a tabla 2 que en vez de hacer un update haga un insert
y lo mismo si en tabla 1 se borro un registro , como le digo a tabla 2 que haga un delete del registro que en tabla 1 antes existia y que en tabla 2 lo borre
ojo que no estoy buscando que alguien me de el codigo echo si no que me ayude a entender la logica de como hacerlo

saludos y muchas gracias!!!
  #7 (permalink)  
Antiguo 16/12/2011, 12:37
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

En realidad no entiendo tus tablas y que datos guardan, para entender mejor el ejemplo podrías explicar que guarda cada tabla, si son comentarios de usuarios o información de productos y pedidos etc
__________________
la la la
  #8 (permalink)  
Antiguo 16/12/2011, 12:46
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

hOLA amigo, que lenguaje de programacion estas utilizando? o lo que quieres es hacer un script SQL?
  #9 (permalink)  
Antiguo 16/12/2011, 12:47
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

Quiero suponer que usa PHP ya que este el el foro de PHP
__________________
la la la
  #10 (permalink)  
Antiguo 16/12/2011, 12:48
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

ahh php, bueno lo que debes hacer es un select de la tabla 1 y la tabla dos, y comparando por id veraz cual registro debes hacer insert o cuales update
  #11 (permalink)  
Antiguo 16/12/2011, 12:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

tablien debes indicar que manejador de base de datos usas? o si estas usando un ORM
  #12 (permalink)  
Antiguo 16/12/2011, 12:50
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

las 2 tablas guardan informacion sobre productos , los campos son
id - descripcion- categoria- subcategoria-precio
pero no tienen la misma estructura tabla 1 contiene mas campos que tabla 2
y los campos se llaman diferente tambien, pero las columnas son del mismo tipo en las dos tablas
lo que yo pensaba hacer tambien es vaciar la tabla 2 y volver a llenarla con los registros de tabla 1
pero antes de vaciarla tendria que guardar algunos registros de algunos campos ya que estos no se tienen modificar para volver a volcarlos en la tabla nuevamente
la idea seria maso menos asi
tabla 2
campo1,campo2,campo3,campo4

--de alguna forma que es lo que no se guardo en variables los registros de campo 3 y campo 4
--vacio la tabla 2
--hago in insert a tabla 2 con los registros de tabla 1
-- hago un update a tabla 2 con los registros de campo 3 y campo 4 que habia guardado antes

ME COMPLICO MUCHO?
saludos
  #13 (permalink)  
Antiguo 16/12/2011, 12:50
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

estoy usando php y mysql
  #14 (permalink)  
Antiguo 16/12/2011, 12:54
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

decime que información guardás en la tabla dos...?

en la uno ya lo vemos
id - descripcion- categoria- subcategoria-precio

Pero en la dos que otros datos se guardan? es mas info sombre el producto? o que? o es un pedido? o que?
__________________
la la la
  #15 (permalink)  
Antiguo 16/12/2011, 12:56
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

SI TE COMPLICAS MUCHO! no borres la tabla 2, porque cuando tengas 1000000 de registros y tengas que llnarla de nuevo el programa "como decimos en venezuela: se tira tres!" vas a tener problemas de recursos y ejecucion.

tienes una tabla de productos, ahora, tambien tienes una tabla de categorias y de subcategorias?

la tabla 2 es donde llevas los pedidos?
  #16 (permalink)  
Antiguo 16/12/2011, 12:58
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

El tema acá es que hay que entender la estructura de tus tablas y que hacen cada una, una vez que sepamos eso, creo que será fácil de resolver
__________________
la la la
  #17 (permalink)  
Antiguo 16/12/2011, 12:59
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

truman_truman
la tabla 2 contiene
id - descripcion- categoria- subcategoria-precio -medida-peso-stock
  #18 (permalink)  
Antiguo 16/12/2011, 13:00
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

mmm, no entiendo entonces porque no ponés todo en una sola tabla
__________________
la la la
  #19 (permalink)  
Antiguo 16/12/2011, 13:01
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

tumbero_x no puedes hacer eso asi! no estan normalizadas, tienes redundancia de datos
  #20 (permalink)  
Antiguo 16/12/2011, 13:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

te voy a mandar las tablas que uso en el manejo de un carrito de compras en el que estoy trabajando
  #21 (permalink)  
Antiguo 16/12/2011, 13:03
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

Cita:
Iniciado por dannyalfonzo Ver Mensaje
tumbero_x no puedes hacer eso asi! no estan normalizadas, tienes redundancia de datos
claro, para que hacer dos tablas casi iguales?
lo que no queda claro tampoco es que funcion cumpliría esta segunda tabla, para que sirve?
Son pedidos?
__________________
la la la
  #22 (permalink)  
Antiguo 16/12/2011, 13:07
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

lo que pasa que tabla 1 la tengo en local y tabla 2 la tengo en un servidor remoto ,
tengo un pequeño sistema de articulos localmente, entonces se van modificando eliminando e insertando articulos y tabla2 esta en una base de datos que pertenece a un carrito de compras(opencart), tengo acceso a esa bd .
entonces lo que hago es conectarme desde el hosting hacia el servidor que tengo localmente con la bd , agarro los registros de tabla 1 y quiero modificar los registros de tabla 2
lo que pasa es que esa base de datos remota tiene diferente estructura y no da para manosearla mucho ya que no me podria funcionar correctamente el carrito de compras
  #23 (permalink)  
Antiguo 16/12/2011, 13:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Duda con actualizacion de tabla

CREATE TABLE `categorias` (
`cod_categoria` int(5) NOT NULL,
`desc_categoria` varchar(50) NOT NULL,
PRIMARY KEY (`cod_categoria`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `categorias` VALUES (1, 'Sushi');
INSERT INTO `categorias` VALUES (2, 'Sopas');
INSERT INTO `categorias` VALUES (3, 'Ensaladas');
INSERT INTO `categorias` VALUES (4, 'Postres');

CREATE TABLE `productos` (
`nom_pro` varchar(50) NOT NULL,
`cod_pro` int(6) NOT NULL,
`stock` int(11) NOT NULL,
`desc_pro` varchar(3000) NOT NULL,
`precio_unid` int(10) NOT NULL,
`categoria` int(5) NOT NULL,
PRIMARY KEY (`cod_pro`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE `productos` (
`nom_pro` varchar(50) NOT NULL,
`cod_pro` int(6) NOT NULL,
`stock` int(11) NOT NULL,
`desc_pro` varchar(3000) NOT NULL,
`precio_unid` int(10) NOT NULL,
`categoria` int(5) NOT NULL,
PRIMARY KEY (`cod_pro`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


INSERT INTO `productos` VALUES ('Sushi 1', 1, 1000, '<p>Texto de ejemplo</p>\r\n<p><strong>Lorem Ipsum</strong> is simply dummy </p>', 80, 1,);
INSERT INTO `productos` VALUES ('ensalada 1', 1, 1000, '<p>Texto de ejemplo 2</p>\r\n<p><strong>Lorem Ipsum</strong> is simply dummy </p>', 80, 3);


y la de pedidos:
CREATE TABLE `pedidos` (
`corelativo` int(11) NOT NULL auto_increment,
`pedido_cod` varchar(100) NOT NULL,
`modo_pago` int(2) NOT NULL,
`cod_estatus` int(11) NOT NULL,
`user_cod` int(11) NOT NULL,
`observasiones` text NOT NULL,
`fecha` datetime NOT NULL,
PRIMARY KEY (`corelativo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

adicionalmente tengo las tablas de estatus del pedido, la de modos de pagos y la de usuarios
  #24 (permalink)  
Antiguo 16/12/2011, 13:14
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

Cita:
Iniciado por tumbero_x Ver Mensaje
lo que pasa que tabla 1 la tengo en local y tabla 2 la tengo en un servidor remoto ,
tengo un pequeño sistema de articulos localmente, entonces se van modificando eliminando e insertando articulos y tabla2 esta en una base de datos que pertenece a un carrito de compras(opencart), tengo acceso a esa bd .
entonces lo que hago es conectarme desde el hosting hacia el servidor que tengo localmente con la bd , agarro los registros de tabla 1 y quiero modificar los registros de tabla 2
lo que pasa es que esa base de datos remota tiene diferente estructura y no da para manosearla mucho ya que no me podria funcionar correctamente el carrito de compras

Ahhh buenooo!! ahora se entiende, una pregunta, podrías usar solo la base de datos del remoto? en lugar de usar dos, harías los cambios directamente en el remoto?

Es una opción eso o no lo podés hacer?
sino pensemos una solución
__________________
la la la
  #25 (permalink)  
Antiguo 16/12/2011, 13:21
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

claro al princio habia pensado eso, usar una sola base de datos
pero la conexion con internet no siempre esta disponible y tampoco es de las conexiones mas rapidas entonces cuando un usuario quiera ver un precio desde el sistema local va a estar un buen rato
para mi la solucion es :
vaciar la tabla 2 pero antes guardar algunos registros de ciertos campos para que despues de haberla llenado nuevamente con tabla 1 , hacer un update con los registros guardados
igualmente no se van a manejar mas de 10.000 registros asi que no creo que se ponga pesado todo esto
  #26 (permalink)  
Antiguo 16/12/2011, 13:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

lo que no se como hacer es antes de vaciar la tabla 2 guardar algunos registros
  #27 (permalink)  
Antiguo 16/12/2011, 13:23
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

Bueno lo primero que habría que hacer es ver si existe el registro de tabla1 en tabla2, sino, se INSERT luego comparar los registros tomando como parametro el id, si no iguales no hacer nada , sino, si son distintos hacer el UPDATE, se podría hacer todo en una misma consulta, pero creo que sería algo bastante complicado, creo que será mejor mover el tema al foro de Mysql, no se , es mi opinión
__________________
la la la
  #28 (permalink)  
Antiguo 16/12/2011, 13:25
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

Cita:
Iniciado por tumbero_x Ver Mensaje
lo que no se como hacer es antes de vaciar la tabla 2 guardar algunos registros
NOOO, como vas a vaciar una tabla? sos locoooo?
eso no tendría sentido, ya que para rellenarla nuevamente también estás dependiendo de la conexión a internet, osea sería peor
__________________
la la la
  #29 (permalink)  
Antiguo 16/12/2011, 13:34
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 14 años, 1 mes
Puntos: 4
Respuesta: Duda con actualizacion de tabla

jajajaja!!!
entonces no la vacio!!!
bueno algo asi queria hacer con loque me comentas anteriormente
paso a explicar
--comparo los id de tabla local con tabla remota, si existen, hago un UPDATE
--(y el problema viene aca) y si en tabla local existe el id pero no en tabla remota, hago un INSERT
-- (mas problemas) y si en tabla remota existe el id y en tabla local no, hago un DELETE en tabla remota
Código PHP:
Ver original
  1. if($id_tablalocal==$id_tablaremota)
  2. {
  3.       UPDATE tablaremota
  4. }
  5. else{  no se que hacer}
Gracias por tu paciencia
  #30 (permalink)  
Antiguo 16/12/2011, 13:40
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 9 meses
Puntos: 177
Respuesta: Duda con actualizacion de tabla

No creo que tengas que actualizar obligatoriamente todos los 10.000 registros, yo creo que se tendría que comparar si hay alguna diferencia, osea si el precio del producto aumentó o si cambió la descripción, entonces si UPDATE , porque creo que 10.000 registros es bastante como para andar actualizándolos a todos,
ahora mi pregunta es cual de las dos tablas es la que vale? cual es la principal?
la tabla dos tiene que quedar como la tabla uno, o hay que juntar las dos y hacer una?
Creo que la mejor solución es usar solo la remota y listo, te ahorrarías muchos dolores de cabeza, o esperar que algún experto en el tema postée la solución que escapa a nuestros conocimientos
__________________
la la la

Etiquetas: registro, tabla, actualizaciones
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:16.