PHP - Consultar y validar antes de insertar datos de un array en la base de datos

 
Vista:

Consultar y validar antes de insertar datos de un array en la base de datos

Publicado por Eduard (2 intervenciones) el 06/11/2018 12:34:20
Un gran saludo a todos los usuarios de esta grandiosa comunidad, necesito de su gran ayuda, estoy creando un pequeño sistema de tags, cloud tags o nube de etiquetas como se le pueda decir en distintos idiomas, pero me esta surgiendo una duda que aun no se como realizarla, yo ingreso cuantas etiquetas quiero para la nueva publicación y de manera efectiva me las ingresa, para dar mas contexto aquí esta un pequeño ejemplo que hice para que ustedes lo vean:
1
2
3
4
5
6
7
8
9
10
<?php
 
$tags = array('programacion','jquery','mysql','php');
$date = date('Y-m-d H:i:s', time());
 
foreach($tags as $tag){
 
$sql ="INSERT INTO tags (name,popular,datetag) VALUES ('$tag',1,'$date') ON DUPLICATE KEY UPDATE popular = popular+1"; $conn -> query($sql);
}
?>
Y de aquí me surgen algunas dudas, como hago para validar es decir, para primero comprobar que alguna de esas que estoy ingresando nuevamente ya existe en la base de datos y que solo esa que ya existe no me la registre nuevamente? solo la que no existe! por si me preguntan, el campo "name" es UNIQUE y de esta manera no se vuelve a registrar pero si aumentan los id es decir si vienen en el array 4 valores de los cuales solo 1 es nuevo osea no existe en la base de datos, y el ultimo id que estaba en la tabla "tags" era de 3, al insertar estos valores nuevamente, el nuevo tag es decir el que no existe en la tabla se registra como de 6, dandome a entender de que el id esta incrementando aun así solo se registre uno solo, entonces quisiera validar esto como lo he mencionado antes!

Mi otra duda es, una vez que ingreso estos tags a la base de datos, como hago para obtener los id de los que ingrese para insertarlo a otra tabla? obviamente yo lo hago mediante una consulta y me los trae como string pero yo quiero que me los ingrese en la otra tabla separados por coma, ya probe con la funcion "implode y explode" pero por estar dentro del foreach o un while no funciona y si lo hago fuera solo me trae uno, gracias espero me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consultar y validar antes de insertar datos de un array en la base de datos

Publicado por xve (6935 intervenciones) el 06/11/2018 15:52:09
Hola Eduard, para saber si ya esta registrado un tag, tendrás que buscarlo primero con un Select...

Sobre tu pregunta de obtener el id, entiendo que estas utilizando mysqli, por lo que deberías utilizar $insert_id...
https://secure.php.net/manual/en/mysqli.insert-id.php
Cabe decir, que tendrás que tener un campo id auto incremental.

Te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consultar y validar antes de insertar datos de un array en la base de datos

Publicado por Yoangel Eizaga (1 intervención) el 06/11/2018 21:10:51
1
2
3
4
//sacamos el id del proximo tag
$result         = mysqli_query($conexion, "SHOW TABLE STATUS WHERE `Name` = 'tags '");
$data           = mysqli_fetch_assoc($result);
$Proximo_id = $data['Auto_increment'];

con esto puedes saber cual es el id que sigue en tu tabla de tags yo lo uso para saber cual es la proxima id de tabla de publicaciones para una ves de crearla me direccione a ella automaticamente
saludos tu amigo BLacksonick
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar