Pregunta:
Fecha: 28-04-2015 09:54:47
(En Español)
Supongamos que tenemos la BD xx y en ella 2 tablas (Tabla_a y Tabla_b)
--------------------------------------------------------------
tabla_a
`id_a` int(11) NOT NULL AUTO_INCREMENT,
`apellido` varchar(100) NOT NULL,
`nombre` varchar(100) NOT NULL,
`pais` varchar(100) NOT NULL,
PRIMARY KEY (`id_a`);
--------------------------------------------------------------
tabla_b
`id_b` int(11) NOT NULL AUTO_INCREMENT,
`nick` varchar(100) NOT NULL,
`oficio` varchar(100) NOT NULL,
`pais` varchar(100) NOT NULL,
PRIMARY KEY (`id_b`);
Hacemos una consulta en la tabla_b
Obtengo todo los registro del campo nick, ellos se representan en una tabla en el html y estan dentro de un form en donde el th es a la vez un input.
Paso el total de los registros obtenidos por GET a un php llamado zz.php
PREGUNTA:
¿COMO INSERTO EN LA TABLA_A todos los valores que vienen por GET en el campo apellido de la TABLA_B?
Cualquier ayuda sera bien recibida, desde ya muchas gracias
PD: Dejo aqui abajo el txt de la Base de Datos y sus Tablas
Votos: 1 - Respuestas: 4 - Vistas: 42 Compartir en: Google Facebook Twitter LinkedIn Link
PHP - Mysqli - ¿COMO INSERTO de forma masiva, todos los valores que vienen por GET? [Resuelta]
Buenas tardes a todos ...Supongamos que tenemos la BD xx y en ella 2 tablas (Tabla_a y Tabla_b)
--------------------------------------------------------------
tabla_a
`id_a` int(11) NOT NULL AUTO_INCREMENT,
`apellido` varchar(100) NOT NULL,
`nombre` varchar(100) NOT NULL,
`pais` varchar(100) NOT NULL,
PRIMARY KEY (`id_a`);
--------------------------------------------------------------
tabla_b
`id_b` int(11) NOT NULL AUTO_INCREMENT,
`nick` varchar(100) NOT NULL,
`oficio` varchar(100) NOT NULL,
`pais` varchar(100) NOT NULL,
PRIMARY KEY (`id_b`);
Hacemos una consulta en la tabla_b
<?php
$mysqli = new mysqli("localhost", "root", "", "xx");
if ($mysqli === false){
die("ERROR: No se estableció la conexión. ". mysqli_connect_error());
}
////////// blablabla
$sql = "SELECT *
FROM tabla_b
";
$result = $mysqli->query($sql);
?>
<table>
<thead>
<tr>
<th>ID</th>
<th>Nick</th>
</tr>
</thead>
<?php
if ($result) {
while($row = $result->fetch_assoc()) {
$id_b = $row['id_b'];
$nick = $row['nick'];
?>
<form action="zz.php" method="GET" enctype="multipart/form-data" > /* Puedo pasar las variables por POST - GET o REQUEST - (DA LO MISMO) */
<tbody>
<tr>
<th ><input class="input" type="date" id="id_b" size="10" name="id_b" style="width:100px;" value="<?php echo $id_b ;?>" ></th>
<th ><input class="input" type="date" id="nick" size="10" name="nick" style="width:100px;" value="<?php echo $nick ;?>" ></th>
</tr>
</tbody>
<?php
}
?>
</table>
<div>
<input class='' type='submit' id='editar' name='editar' value='Editar' >
</div>
</form>
<?php
}
else
{
echo "0 results";
}
$mysqli->close();
?> Obtengo todo los registro del campo nick, ellos se representan en una tabla en el html y estan dentro de un form en donde el th es a la vez un input.
Paso el total de los registros obtenidos por GET a un php llamado zz.php
<?php
require('conexion.php'); ///// lo puse asi para no hacerlo tan largo, el hecho es que se entienda el ejemplo
$id_b=($_GET['id_b']);
$nick=($_GET['nick']);
//////////////// AHORA BIEN, ¿COMO INSERTO EN LA TABLA_A todos los valores que vienen por GET en el campo apellido de la TABLA_B? /////////////////////
////////////// Esta parte no funciona pero es la que se me ocurrio ////////////////
$sql='INSERT INTO empleados(
apellido
)
values(
".implode(", ", $apellido)."
';
$result = $mysqli->query($sql);
?>PREGUNTA:
¿COMO INSERTO EN LA TABLA_A todos los valores que vienen por GET en el campo apellido de la TABLA_B?
Cualquier ayuda sera bien recibida, desde ya muchas gracias
PD: Dejo aqui abajo el txt de la Base de Datos y sus Tablas
-- phpMyAdmin SQL Dump -- version 4.1.14 -- http://www.phpmyadmin.net -- -- Servidor: 127.0.0.1 -- Tiempo de generación: 28-04-2015 a las 20:57:14 -- Versión del servidor: 5.6.17-log -- Versión de PHP: 5.5.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de datos: `xx` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `tabla_a` -- CREATE TABLE IF NOT EXISTS `tabla_a` ( `id_a` int(11) NOT NULL AUTO_INCREMENT, `apellido` varchar(100) COLLATE utf8_spanish_ci NOT NULL, `nombre` varchar(100) COLLATE utf8_spanish_ci NOT NULL, `pais` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`id_a`), KEY `id_a` (`id_a`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=6 ; -- -- Volcado de datos para la tabla `tabla_a` -- INSERT INTO `tabla_a` (`id_a`, `apellido`, `nombre`, `pais`) VALUES (1, 'Lopez', 'Jose', 'Ar'), (2, 'Gomez', 'Juan', 'Ch'), (3, 'Recoba', 'Javier', 'Ur'), (4, 'Lopez', 'Oscar', 'Br'), (5, 'Fernandez', 'Manuel', 'Ve'); -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `tabla_b` -- CREATE TABLE IF NOT EXISTS `tabla_b` ( `id_b` int(11) NOT NULL AUTO_INCREMENT, `nick` varchar(100) COLLATE utf8_spanish_ci NOT NULL, `oficio` varchar(100) COLLATE utf8_spanish_ci NOT NULL, `pais` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`id_b`), KEY `id_a` (`id_b`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=11 ; -- -- Volcado de datos para la tabla `tabla_b` -- INSERT INTO `tabla_b` (`id_b`, `nick`, `oficio`, `pais`) VALUES (1, 'Pepe', 'Mecanico', 'Ar'), (2, 'Cholo', 'Peluquero', 'Ch'), (3, 'Tico', 'Planchador', 'Ve'), (4, 'Pipi', 'Crupier', 'Ur'), (5, 'Chavo', 'Masajista', 'Me'), (6, 'Lolo', 'Bombero', 'Pe'), (7, 'Chachi', 'Jardinero', 'Pa'), (8, 'Motumbu', 'Guitarrista', 'Br'), (9, 'Pelado', 'Medico', 'Ec'), (10, 'Peludo', 'Ingeniero', 'Ar'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Votos: 1 - Respuestas: 4 - Vistas: 42 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 29-04-2015 02:03:18 Ante todo, muchas gracias Txema por tu respuesta.
El objetivo por el cual pretendo utilizar los metodos GET - POST - REQUEST, como asi tambien el input en el form se debe a que a la hora de obtener los datos de la consulta, puede que el data enter decida reemplazar uno de los registros que alli aparecen, enviando otro en su lugar.
El objetivo principal es una vez obtenidos los datos de una consulta (Supongamos 10), poder ingresarlos en los campos de otra tabla. Votos: 1 - Link respuesta -
Fecha: 02-05-2015 08:37:18 No se si tendrá algo que ver con la pregunta pero si cuando necesito tomar un valor de elementos iguales de html, por decir, un input del tipo radio, al name se le agrega [ ] y de esta manera, se crea un array del $_POST - $_GET Votos: 1 - Link respuesta
-
Fecha: 04-05-2015 10:40:51 Gracias Diego por tu acotación ...
He aquí el tema resuelto ...
Se puede usar de varias formas, aquí expongo una que a su vez se puede editar el registro a enviar
Aquí dejo el script para aquellos que se les presento el mismo problema que a mi:
Pagina 100.php
<style type="text/css"> td{ width: 150px; font-family: arial; } .td{ text-align:center; background-color:#000000; color:#FFFFFF; } </style> <?php require('funciones/conexion.php'); ?> <table align='center' border='1'> <tr> <td class="td">Nombre</td> <td class="td">Editar Nombre</td> <td class="td">Apellido</td> <td class="td">Editar Apellido</td> </tr> </table> <?php $sql = "SELECT nombre, apellido FROM agenda "; if ($result = $mysqli->query($sql)){ if ($result->num_rows > 0 ){ while($row = $result->fetch_assoc()){ $nombre = $row['nombre']; $apellido = $row['apellido']; ?> <form action='101.php' method='get'> <table align='center' border='1'> <tr> <td><?php echo $nombre ?></td> <td><input type='text' name='nombre[]' value='<?php echo $nombre ?>'/></td> <td><?php echo $apellido ?></td> <td><input type='text' name='apellido[]' value='<?php echo $apellido ?>'/></td> </tr> <?php }}} ?> </table> <input type='submit' value='Actualizar'/> </form>
Pagina 101.php
<?php //Conexion BD require('funciones/conexion.php'); $contador = count($_GET["nombre"]); if ($contador > 0) { //Si tengo 1 registro o mas for ($i=0; $i<$contador; $i++) { // Hago un FOR cuento todos los registros de la consulta $apellido = $_GET["apellido"][$i]; $nombre = $_GET["nombre"][$i]; //Inserto los registros en otra tabla $query = "INSERT INTO tabla_b (nick, oficio) VALUES ('$nombre', '$apellido')"; $resultados= mysqli_query($mysqli, $query); }} //Verifico si los datos fueron insertados en la tabla if($resultados) { //Si se insertó, muestro un mensaje en JavaScript confirmando echo "<script language='javascript'> alert('La imputacion fue ingresado correctamente.') window.location.href= '100.php' </script>"; } else { //Si no se insertó, muestro un mensaje avisando que esxite un error echo "<script language='javascript'> alert('ERROR - La imputacion No fue ingresada correctamente, intente nuevamente.') window.location.href= '100.php' </script>"; } ?>Votos: 1 - Link respuesta -
Fecha: 05-05-2015 14:51:54 Txema:
El objetivo que me había planteado era hacerlo en php, dado a que es el lenguaje que medianamente manejo, por otra parte a modo ejemplo paso lo parámetros por GET (Solo para verlos), en realidad en el desarrollo lo hago por POST.
Tal vez sobre este esquema me puedas explicar en AJAX (No lo se hacer), como se puede ELIMINAR un registro o fila completa en la edición previa a pasar los parámetros.
Como siempre, muy agradecido por tus aportes, ya que sos muy didáctico y fundas tu ejemplos con documentación. Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
