Nueva pregunta

Pregunta:

Fecha: 28-04-2015 09:54:47 (En Español)

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 

*/;


Etiquetas: $_GET - MySQL - PHP - PHP MySQLi - Pregunta - Query - SQL 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
 
frjcbbae garagebible.com