Insertar multiples registros ciclo while php
Insertar multiples registros ciclo while php. En este artículo veremos la inserción de datos desde otra tabla A de una base de datos a otra tabla B. Para realizar nuestro cometido en este ejemplo utilizaremos el ciclo WHILE de PHP.
Este ejemplo nace de una problemática que tuve en un desarrollo de una plataforma web para una empresa local. Básicamente se trataba de un chat que la empresa necesitaba para comunicarse entre el personal.
La idea era la siguiente si alguien escribía en el chat, todos los demás miembros del sistema podían ver en mensaje enviado. Ahora a cada personal tenía que llegarle una alerta y esa alerta no se quitaba hasta que el personal tenía que hacer clic en el mensaje.
Insertar multiples registros ciclo while php
Para lograr esto tenía que hacer una consulta de todos los usuarios del sistema e insertarlos en otra tabla llamada alertas, y si uno de ellos le daba clic a un botón, el registro de dicho usuario se marcaba en valor 1 (leído) y ya desaparecía la alerta.
Lo demás se hizo con Jquery y JavaScript.
Ahora les mostrare en este pequeño ejemplo como pude solucionar este inconveniente.
Paso #01 La conexión con la base de datos.
// creacion de conexión $host = 'localhost'; $basedatos = 'basededatos'; $usuario= 'root'; $contrasena= 'root'; $conn = new mysqli($host, $usuario, $contrasena, $basedatos); // Check connection if ($conn->connect_error) { die("Conexión fallida: " . $conn->connect_error); }
Paso #02 Realizar la consulta en la tabla usuarios.
Realizamos una consulta de una tabla externa para obtener datos para insertarlos dinámicamente con otros datos, ya sean del método POST y/o GET mediante el ciclo while y php.
Aquí tenemos un ejemplo de consulta si es que queremos excluir a alguien en los resultados para después insertarlos en otra tabla.
$sql = "select * from login where nombre !='carlos'"; $result = $conn->query($sql);
Paso #03 Usando el ciclo WHILE.
Código del ciclo while para insertar registros.
$index = 1; while($row = mysqli_fetch_array($result)){ $valor = $row["nombre"]; $valor2 = $row["apellido"]; $insertsql= "insert into lista (`dato1`,`dato2`)values ('$valor', now())"; // mysql_query($insertsql); $conn->query($insertsql); $index++; }
Paso #04 Verificar el ingreso de datos y cierre de conexión.
Mensaje de respuesta de MySQL si los datos han sido insertados correctamente y posteriormente cerrar la conexión con el servidor.
if ($insertsql == TRUE) { echo "Nuevos registros ingresados correctamente"; } else { echo "Error: " . $insertsql . "<br>" . $conn->error; } $conn->close();
Código completo del articulo.
<?php // creacion de conexión $host = 'localhost'; $basedatos = 'basedatos'; $usuario= 'root'; $contrasena= 'root'; $conn = new mysqli($host, $usuario, $contrasena, $basedatos); // Check connection if ($conn->connect_error) { die("Conexión fallida: " . $conn->connect_error); } $sql = "select * from login where nombre !='carlos'"; $result = $conn->query($sql); $index = 1; while($row = mysqli_fetch_array($result)){ $valor = $row["nombre"]; $valor2 = $row["apellido"]; $insertsql= "insert into lista (`dato1`,`dato2`)values ('$valor', now())"; // mysql_query($insertsql); $conn->query($insertsql); $index++; } if ($insertsql == TRUE) { echo "Nuevos registros ingresados correctamente"; } else { echo "Error: " . $insertsql . "<br>" . $conn->error; } $conn->close(); ?> </body> </html>
Espero que esta breve explicacion les sirva bastante, gracias por su visita.
Referencia
Gracias.
Hola, mí nombre es Agustín soy nuevo en php y estoy luchando para sacar datos de un .txt e insertarlos en una tabla. Con un bucle while recorro las líneas y separó el contenido línea por línea hasta encontrar una línea vacía que me indica dónde hacer un insert a la tabla. Quisiera saber si se puede dentro de un bucle while hacer insert en una tabla.