Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/12/2011, 11:05
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: Obtener id de registro ingresado

Me podrías explicar qué es lo que hacen estos SELECT NULL:
Código MySQL:
Ver original
  1. INSERT INTO Tags (Tag)
  2. SELECT '$tagsimple'
  3.      (SELECT NULL
  4.      FROM Tags
  5.       WHERE Tag = '$tagsimple')
En todos los años que hace que trabajo con MySQL es la primera vez que veo algo así.
¿Cuál es la meta de hacer un FROM (NULL)? Porque ese es el resultado real...

Por otro lado, y volviendo a tu primer post:
Cita:
-Ahora en mi segunda tabla (tags_noticias) debería insertar el idTag y el idNoticia.
El idNoticia lo obtengo perfectamente. Lo que se me complica es obtener el idTag de la tabla Tags para insertarlo nuevamente con su correspondiente idNoticia.
Por el ejemplo que pones en ese post, el idTag debería ser autoincremental, ya que no lo estás poniendo como columna del INSERT ni como dato del subsiguiente SELECT. El tag, por su lado, por lo que parece es un conjunto de textos separados por comas.
Tengo la impresión de que hay algún error en el diseño de tu esquema.
¿Podrías explicar un poco mejor cómo son las tablas y cómo deben quedar los datos en ellas?
Cita:
Repito, no me sirve el mysql_insert_id. Porque como dije, no siempre se ingresan tags nuevos. Es decir, si el tag que esta ingresando el usuario ya esta ingresado en mi tabla de tags, no se ingresara nuevamente, para evitar repeticiones y tener asi un solo idTag por cada palabra. Ejemplo: Si el tag aviones tiene como idTag valor 1, y luego se ingresaran 200 tags nuevos, y viene otro usuario e ingresa en una noticia el tag aviones, no se generará un nuevo id para aviones, ya que deberia tomar el idTag 1. me explico? Por eso pregunto, hay forma de comparar el tag ingresado, buscarlo en mi tabla de tags comparando las palabras y obtener el idTag correspondiente?
No me termina de quedar claro si los tags son palabras únicas por registro, o son conjuntos de palabras en el mismo registro (campos multivaluados).
En el primer caso, no debería haber probelmas para crear una restricción en la tabla para evitarte tantas vueltas. Y averiguar si el tag existe sólo requiere búsquedas FULLTEXT (expresiones regulares).
En el segundo caso, a nivel de base de datos tienes un defecto grave, difícil de resolver sin modificarla. Y en ese caso, la búsqueda se complica, porque una misma expresión puede aparecer en diferentes tags sin necesariamente ser repetciones.

Explicame un poco mejor cómo manejas a nivel de datos los tags.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)