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:
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.
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);
}
?>
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


0