Nueva pregunta

Pregunta:

Fecha: 06-10-2017 15:16:27 (En Español)

INSERT MYSQL y PHP[Resuelta]

Buenas a todos
Tengo un inconveniente al intentar hacer un INSERT de los registros que vienen de un formulario que agrega registros multiples y simultaneos

FORMULARIO
<?php /// Conexion BD
$con = new mysqli("localhost", "root", "", "tauro");
if ($con === false){
	die("ERROR: No se estableció la conexión. ". mysqli_connect_error());

}
$con->set_charset('utf8');
?>

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

<script type="text/javascript">
	
$(document).ready(function(){ /// Con esta funcion JSON, se agregan campos o se eliminan


      maxItem = 0;
      $("#nuevo_registro").click(function(){

            $("div#asientos_contables").append("<div id='div_" + maxItem + "'></div>");
            $("#div_" + maxItem).load('asiento_1.php');
            maxItem++;
          
      });          
      $("#elimina_registro").click(function(){
        maxItem--;
        $('div').find('[id="div_' + maxItem + '"]').remove();
      });
 }) 

</script>

<div class="modal-body" style="text-align: left; width: 70% ; align-content:center; margin-left: 10%;">

<h4 class="modal-title" id="exampleModalLabel" style="text-align: left; ">Asiento Contable</h4>	

<form name="asiento" enctype="text/plain" method="GET" action="5-1.php">

 <fieldset>
 <legend> Asiento</legend>

	<div class="row"> 
	    <div class="col-xs-6">
	    <legend style="font-family: arial; font-size: 16px;" for="">Conceptos</legend>      
	    </div>
	    <div class="col-xs-3">
	    <legend style="font-family: arial; font-size: 16px;" for="">Debe</legend>      
	    </div>
	    <div class="col-xs-3">
	    <legend style="font-family: arial; font-size: 16px;" for="">Haber</legend>      
	    </div>


	    <div id="asientos_contables" ></div>

	</div>

    <div class="row pull-left" style="margin-left: 0.2em; margin-top: 1.5em">
         <button id='nuevo_registro' type="button" class="btn btn-default btn-md" > <i class="fa fa-home" aria-hidden="true" style="color:#0000ff;"></i> ( + ) </i></button>
         <button id='elimina_registro' type="button" class="btn btn-default btn-md" > <i class="fa fa-home" aria-hidden="true" style="color:#ff0000;"></i> ( - ) </i></button> 
    </div>

 </fieldset> 
	<br>
    <br>
<div class="modal-footer">    

<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-times" aria-hidden="true"></i>
Cerrar</button>
<button type="submit" name="" class="btn btn-primary"><i class="fa fa-check" aria-hidden="true"></i>
Ingresar</button>
</form> 
</div>
</div>


INSERT
<?php

/// Conexion BD

$con = new mysqli("localhost", "root", "", "tauro");
if ($con === false){
  die("ERROR: No se estableció la conexión. ". mysqli_connect_error());


$con->set_charset('utf8');

///////////////////////////////////////////////////////////////////////////

	//Levanto los datos introducidos en el formulario
	$concepto = $_GET["concepto"];

        $numeroregistros = count($concepto); //Cuento el numero de registros introducidos;
        for($i=0;$i<$numeroregistros;$i++){
        
        // La consulta insert se ejecutará tantas como recibo en el bucle for
          $conceptos_multiples = $concepto[$i]; //


/// Prueba *********
 echo $concepto[$i];
 echo "<br>";          
 echo $debe[$i];
 echo "<br>";          
 echo $haber[$i];

/* 
////////// INSERT - 

          $consultainsert = "INSERT INTO asientos_contables(concepto) VALUES('$conceptos_multiples')";
          $resultadoinsert = mysqli_query($conexion,$consultainsert);


        }*/

}
?>


ASIENTO

<?php /// Conexion BD
$con = new mysqli("localhost", "root", "", "tauro");
if ($con === false){
	die("ERROR: No se estableció la conexión. ". mysqli_connect_error());

}
$con->set_charset('utf8');
?>

<div class="form-group">

    <div class="col-xs-6">

        <?php
          $result=mysqli_query($con, "select * from plan_de_cuentas ORDER BY n_cuenta ASC");
          //Llenas el combo
          if ($row = mysqli_fetch_assoc($result)){ 
          echo '<select class="form-control" name= "concepto[]" style="text-align: left; border: 0; border-bottom: solid blue; box-shadow: none;" >';
          echo '<option> </option>';
          do {
          echo '<option value= "'.$row["cuenta"].'">'.$row["cuenta"].'</option>';
          } 
          while ($row = mysqli_fetch_assoc($result)); 
          echo '</select>';
          }
        ?>

    </div>

    <div class="col-xs-3">    
      <input input class="form-control " name="debe[]" id="" type="text" title="Tipo de Comprobante" value="" style="text-align: right; border: 0; border-bottom: solid blue; box-shadow: none;">
    </div> 

    <div class="col-xs-3">      
      <input input class="form-control " name="haber[]" id="" type="text" title="Tipo de Comprobante" value="" style="text-align: right; border: 0; border-bottom: solid blue; box-shadow: none;">
    </div>
     
</div>


TABLAS

TABLA ASIENTOS CONTABLES

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 07-10-2017 a las 01:47:54
-- Versión del servidor: 5.6.17
-- 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: `tauro`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `asientos_contables`
--

CREATE TABLE IF NOT EXISTS `asientos_contables` (
`id_asiento` int(11) NOT NULL AUTO_INCREMENT,
`n_asiento` int(99) NOT NULL,
`fecha` date NOT NULL,
`leyenda` varchar(250) NOT NULL,
`concepto` varchar(150) NOT NULL,
`debe` float(10,2) NOT NULL,
`haber` float(10,2) NOT NULL,
PRIMARY KEY (`id_asiento`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

/*!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 */;

TABLA PLAN DE CUENTAS

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 07-10-2017 a las 01:47:16
-- Versión del servidor: 5.6.17
-- 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: `tauro`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `plan_de_cuentas`
--

CREATE TABLE IF NOT EXISTS `plan_de_cuentas` (
`id_plan` int(11) NOT NULL AUTO_INCREMENT,
`n_cuenta` int(99) NOT NULL,
`cuenta` varchar(250) NOT NULL,
`saldo` varchar(10) NOT NULL,
`tipo_de_cuenta` varchar(250) NOT NULL,
PRIMARY KEY (`id_plan`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Volcado de datos para la tabla `plan_de_cuentas`
--

INSERT INTO `plan_de_cuentas` (`id_plan`, `n_cuenta`, `cuenta`, `saldo`, `tipo_de_cuenta`) VALUES
(1, 1, 'Caja', 'Deudor', 'Activo'),
(2, 2, 'Banco', 'Deudor', 'Activo'),
(3, 1, 'Bienes de Cambio', 'Deudor', 'Activo');

/*!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: JSON - MySQL - PHP Votos: 0 - Respuestas: 4 - Vistas: 22 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 07-10-2017 03:28:24 y cual es el inconveniente?????? podrías decirlo para ayudarme más rapido   Votos: 0 - Link respuesta
     
  • Fecha: 09-10-2017 03:32:47 Carlos
    Buenos dias
    Debo insertar en la TABLA registro por registro en cada campo, en funciode la cantidad (n) de lineas de registros que se pretenga ingresar por el usuario, puede ser 1 o (n) cantidad.

    Como podes ver, hice un Insert de prueba, pero solo logro ingresar los registros de un solo campo.
    Cualquier ayuda, bien venida.
    Desde ya muchas gracias
      Votos: 0 - Link respuesta
     
  • Fecha: 13-10-2017 19:17:06 GENTE

    Buenas noches

    He aquí la respuesta ... para quienes les interese ... INSERTE de campos MULTIPLES y CONSECUTIVOS.

    Doy por RESULTA la pregunta.

    
    <?php
    
    /// Conexion BD
    
    $con = new mysqli("localhost", "root", "", "tauro");
    if ($con === false){
      die("ERROR: No se estableció la conexión. ". mysqli_connect_error());
    
    
    $con->set_charset('utf8');
    
    ///////////////////////////////////////////////////////////////////////////
    	//Levanto los datos introducidos en el formulario
    
      $concepto   = $_GET["concepto"];
      $debe         = $_GET["debe"];
      $haber        = $_GET["haber"];
    
      for($i = 0; $i<sizeof($concepto); ++$i)
      {
    
       $insert = mysqli_query($con, "INSERT INTO asientos_contables(concepto, debe, haber) VALUES( '".$concepto[$i]."', '".$debe[$i]."', '".$haber[$i]."')");
     
      }
    
          //Verificamos si los datos fueron insertados en la tabla 
        if($insert) 
        { 
        //Si se inserto, mostramos un mensaje en JavaScript confirmando 
        echo "PRUEBA - CARGO";
    
        } else{ 
        //Si no se inserto, mostramos un mensaje avisando tal error 
        echo "PRUEBA - NO CARGO ";
        }
    
    ?>
    
    
    
      Votos: 0 - Link respuesta
     
  • Fecha: 14-10-2017 02:13:22 bueno recuerda utilizar un try catch para asi detectar cualquier excepción y hechar el trabajo para atras en caso de errores, de esa manera evitas inconsistencias en tus bases de datos, imagina que durante el proceso ocurrar errores y no se inserten datos, pero estos son necesarios que esten en el orden que se van a insertar, pues es alli donde el try catch ayuda y mucho   Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com