Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Actualizar datos pero quitando uno, y dejar los que sobran.

Estas en el tema de Actualizar datos pero quitando uno, y dejar los que sobran. en el foro de Mysql en Foros del Web. Hola a todos, Tengo una duda, saben que tengo un código en el cual con PHP hago un UPDATE SET hacia un campo para colocar ...
  #1 (permalink)  
Antiguo 25/01/2010, 16:58
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 2 meses
Puntos: 7
De acuerdo Actualizar datos pero quitando uno, y dejar los que sobran.

Hola a todos,

Tengo una duda, saben que tengo un código en el cual con PHP hago un UPDATE SET hacia un campo para colocar la ID Del Miembro, van así: 1,2,3,4,5 etc..

y Bueno, sé agregar con y sin coma, pero solamente sé eliminar cuando está el valor sólo, osea así: 2

Entonces mi pregunta es, ¿Cómo debe ser el UPDATE SET, quitando la coma con la ID del usuario, pero dejando los demás que sobran?

Saludos.
  #2 (permalink)  
Antiguo 25/01/2010, 17:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Actualizar datos pero quitando uno, y dejar los que sobran.

imaginemos que tienes en el campo numero 1,2,3,4
y quieres borrar el 3,

UPDATE tutabla SET numero = replace(numero, ',3,',',')

Si te preguntas por qué uso la coma, te diré que porque podrías haber escrito 13. El único problema es el primer número, por lo que quizás podrías incluir en primer lugar una coma. Si te soy sincero te diré que no sé por qué razón usas un campo de esas características. Yo prefiero usar un registro para cada número relacionado, pero es lo que tienes y tus razones tendrás. Seguro que hay otras opciones.
  #3 (permalink)  
Antiguo 25/01/2010, 17:19
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Actualizar datos pero quitando uno, y dejar los que sobran.

Estoy Usando Simple Machines Forum, y lo estoy ocupando para agregar las personas ignoradas, y así está configurado en los Mensajes Privados.-

Bueno entonces al final cómo sería el UPDATE SET?
UPDATE tabla SET personasignoradas = replace(personasignoradas, '," . $row['ID_MEMBER'] . "') WHERE ....

Así?
  #4 (permalink)  
Antiguo 25/01/2010, 18:13
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 2 meses
Puntos: 7
Respuesta: Actualizar datos pero quitando uno, y dejar los que sobran.

Perdón por doble post, pero no pasa nada :S ¿Alguna otra solucion?
  #5 (permalink)  
Antiguo 25/01/2010, 18:24
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, 3 meses
Puntos: 2658
Respuesta: Actualizar datos pero quitando uno, y dejar los que sobran.

Cita:
Tengo una duda, saben que tengo un código en el cual con PHP hago un UPDATE SET hacia un campo para colocar la ID Del Miembro, van así: 1,2,3,4,5 etc..
Vamos a ve si entiendo: ¿en un campo de una tabla guardas todos los usuarios ignorados por otro usuario? ¿esa es la idea?

La cosa, si entendí bien, tiene dos formas de manejarse: Por PHP o por MySQL.
Por PHP (que no es tema para este foro, sino para el Foro de PHP), deberías:
-Leer el registro buscado.
- Descomponer el valor de ese campo en un array usando como separadores a las comas.
- Eliminar o actualizar el valor buscado.
- Volver a guardar todo.

El cómo se hace todo esto en PHP no te lo puedo postear porque no se puede poner código de programación en este foro. Consulta en el Foro de PHP.

En cuanto a hacerlo en MySQL, en realidad el problema es que eso no se hace con un campo multivaluado, como lo estás haciendo tú, porque los campos multivaluados no existen en las bases de datos relacionales. Son una violación al modelo. Lo que se hace en esos casos es crear una tabla Ignorados(id_user, id_ignorado), lo qu soluciona todo en unas simples consultas.
Incluso, si se quiere una lista de IDs de los ignorados, para ser mostrada en una página, es muchísimo más simple con esa tabla.

¿Se entiende la idea?
__________________
¿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: dejar
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 03:12.