Ver Mensaje Individual
  #18 (permalink)  
Antiguo 30/12/2011, 13:22
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

Bien, tu problema ahora es cómo obtener los idTags que ya existían. Eso es otra cosa, pero que tiene muchas formas diferentes de resolverlo, y en todos los casos se requiere hacer una consulta, porque no hay forma de saber en una misma operación cuál es el id de un o que ya existe al fracasar el INSERT.
Si quieres una sugerencia, considerando que a medida que se vayan ingresando registros, será más probable que sean más los insert que fallen que lo que se hagan, yo realizaría una consulta antes de realizar el primer INSERT y listo.

Mas o menos así:

Código PHP:
Ver original
  1. <?php
  2. $palabra = $tags;
  3.        $array = explode(", ",$palabra);
  4.        foreach ($array as $tagsimple)
  5.            {
  6.            $nuevoId = 0;
  7.            $verificar = "SELECT idTag ";
  8.            $verificar = "FROM Tags ";
  9.            $verificar .= "WHERE Tag = '$tagsimple')";
  10.            $resultVerif = mysql_query(verificar, $dbConn) or die(mysql_error());
  11. //         Verifica si ya existe y si es así, recupera el idTag.
  12.            if($resultVerif){
  13.                $rs = mysql_fetch_assoc($verificar);
  14.                $nuevoId = $rs["idTag"];
  15.                }
  16.            else{
  17. //             Si el idTag no existe, lo inserta.
  18.                $query = "INSERT INTO Tags (Tag) ";
  19.                $query .= "VALUES('$tagsimple')";
  20.                $result = mysql_query($query, $dbConn) or die(mysql_error());
  21.                if($result)
  22. //                   Si lo pudo insertar, lo recupera.
  23.                     {$nuevoId = mysql_insert_id();}
  24.                else{
  25. //                  Acá va alguna condición según haya fracasado el INSERT
  26. //                  por alguna otra razon. En este punto no puede continuar porque
  27. //                  ni es nuevo (no ingresó) ni existe desde antes, porque no se lo
  28. //                  encontró.
  29.                    }
  30.                 }
  31. //          Continúa la ejecución normal, si el valor de nuevoId es mayor a cero.
  32.             $query2 = "INSERT INTO tag_noticias(IdNoticia, IdTag) ";
  33.             $query2 .= "VALUES(".$IdNoticia.",".$nuevoId.")";
  34.             $result2 = mysql_query($query2, $dbConn) or die(mysql_error());
  35.            }
  36. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)