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

Reemplazo masivo de datos en MySQL

Estas en el tema de Reemplazo masivo de datos en MySQL en el foro de Mysql en Foros del Web. Hola, Para hacer uso de la nueva funcionalidad de "Insertar Vídeo" en los mensajes en vBulletin, he reemplazado mis antiguas etiquetas de código BB para ...
  #1 (permalink)  
Antiguo 02/03/2010, 18:38
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Reemplazo masivo de datos en MySQL

Hola,

Para hacer uso de la nueva funcionalidad de "Insertar Vídeo" en los mensajes en vBulletin, he reemplazado mis antiguas etiquetas de código BB para embeber YouTube [YT]video_id[/YT] por [video]http://www.youtube.com/watch?v=videoid[/video] ejecutando esta query en MySQL:

Código:
update post set pagetext = Replace(pagetext,'[yt]','[video]http://www.youtube.es/watch?v=');
update post set pagetext = Replace(pagetext,'[/yt]','[/video]');
Pero ahora no aparece el player embebido hasta que no edito manualmente cada post que contiene ese tipo de código. He descubierto que el motivo por el que esto no sucede de forma automática es porque el nuevo código que se genera tras editar el mensaje queda así:

[video=youtube;video_id]http://www.youtube.com/watch?v=video_id[/video]

Por lo tanto, para poder visualizar el player embebido hay que expandir la etiqueta [video] con las variables en negrita, pero no sé qué query debo ejecutar en MySQL para capturar de forma masiva el video_id apropiado de la URL y las etiquetas queden correctamente formadas para que puedan mostrarse los players embebidos.

He visto algo parecido a esto aquí: http://www.vbulletin.com/forum/showthread.php?306316-very-messy-BBcode-cleanup-need-cleaner-help, pero creo que no es aplicable a este caso...

Agradezco un montón vuestra ayuda, muchas gracias.

Última edición por snoozer; 02/03/2010 a las 19:03
  #2 (permalink)  
Antiguo 02/03/2010, 19:17
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: Reemplazo masivo de datos en MySQL

Por lo que parece, el problema es que cambiaste incorrectamente el contenido de las etiquetas, ya que en lugar de hacer:
Código MySQL:
Ver original
  1. UPDATE post
  2. SET pagetext = REPLACE(pagetext,'[yt]','[video]http://www.youtube.es/watch?v=');
Debiste poner:
Código MySQL:
Ver original
  1. UPDATE post
  2. SET pagetext = REPLACE(pagetext,'[yt]','[video=youtube;video_id]http://www.youtube.com/watch?v=');
Evidentemente ese segmento
Cita:
=youtube;video_id
es un agregado que depende de otra cosa, además de vBulletin.

Ahora solamente te quedaría corregir:
Código MySQL:
Ver original
  1. UPDATE post
  2. SET pagetext = REPLACE('[video]', '[video=youtube;video_id]' );

Al menos según interpreto lo que preguntas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/03/2010, 19:24
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Reemplazo masivo de datos en MySQL

gnzsoloyo, mil gracias por tu rápida respuesta.

Verás, el segmento
Cita:
=youtube;video_id
es agregado por functions_video.php cuando un usuario crea la etiqueta normal de [noparse][video][/video].

El problema es que video_id no es el nombre de una variable que deba aparecer como tal en cada lugar, sino que es una referencia que he utilizado aquí para entendernos, pero realmente debe aparecer el ID del vídeo de YouTube, es decir, lo que en la URL viene a continuación de /watch?v=.

Por tanto, no sé si es posible mediante una query extraer la información que aparezca a partir de ahí para agregársela después a la etiqueta.

Quizá sería más fácil forzar que functions_video.php se ejecute en toda la tabla, pero tampoco sé cómo, o bien crear un nuevo script en php que facilite estas extracciones.

Muchas gracias
  #4 (permalink)  
Antiguo 02/03/2010, 19:42
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: Reemplazo masivo de datos en MySQL

Tal vez algo parecido a:
Código MySQL:
Ver original
  1. SELECT CONCAT('[video=youtube;', video_id, ']http://www.youtube.com/watch?v=video_id[/video]') LINK
  2. FROM tabla;
__________________
¿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 02/03/2010, 19:55
 
Fecha de Ingreso: julio-2006
Mensajes: 4
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Reemplazo masivo de datos en MySQL

Estoy investigando que igual es más sencillo forzar que los filtros que se ejecutan al publicar un mensaje, se ejecuten con todos los mensajes, pero esto ya es cosa de que el vBulletin me permita hacerlo.

Muchas gracias, gnzsoloyo

Etiquetas: masivo, reemplazo
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 13:03.