Nueva pregunta

Pregunta:

Fecha: 26-02-2018 06:53:43 (En Español)

Insertar tablas relacionadas en php PDO y mysql [Resuelta]

Hola a todos, alguien que me de un ejeplo de insertar dos tablas relacionadas en php PDO y Mysql.
En los inputs del html vienen datos por post en Array separados por comas.

ejemp:
<input type="text" name="cantidad[]" value="3,5"/>
POO.


Gracias desde ya.
Etiquetas: Array PHP - Base de Datos - MD5 - MySQL - MySQL Desarrollo - PHP - PHP Avanzado - PHP header - PHP JSON - PHP MySQLi - PHP PDO - PHP7 - POO - SQL Votos: 0 - Respuestas: 5 - Vistas: 18 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 27-02-2018 01:30:50 tu pregunta es muy genérica, darte ejemplos hay muchos, que se adapte a lo que requieres, es otra cosa, debes indicar que estas haciendo ahorita, que código de inserción has intentado, solo con ver una linea html y su valor no nos dice nada, que error recibes al internar hacer la inserción o recorrido del array entrante por ejemplo.   Votos: 0 - Link respuesta
     
  • Fecha: 27-02-2018 04:10:57 Gracias por responder, pues vera tengo lo siguiente:

    vista:
    <form method="POST">
        
                                <input type="hidden" name="usuarioPe" id="usuario" value="'<?php echo $_SESSION["idUsuario"] ?>'" readonly>                   
                                <input type="hidden" name="subtotal_De" id="subtotal_De" value="" readonly> 
                                <input type="hidden" name="costoEnvio_De" id="costoEnvio_De" value="10" readonly>
                                <input type="hidden" name="igv_De" id="igv_De" value="" readonly>
                                <input type="hidden" name="total_De" id="total_De" value="" readonly> 
    
    
                                 <input type="hidden" name="cantidad_De[]" id="cantidad_De" value="" readonly>                                     
                                <input type="hidden" name="idproducto[]" id="idproducto_De" value="" readonly>
                                <input type="hidden" name="precio[]" id="precio_De" value="" readonly>
    
                                 <?php
                                   $registroPedido = new ControladorPedidos();
                                   $registroPedido -> ctrPedidoProducto();
                                  ?>                       
                      
                         <button type="submit" class="btn colorSecundario">FINALIZAR PEDIDO</button>
                      </form> 


    controlador PHP
    class ControladorPedidos
    {
    	
    	
    		public function ctrPedidoProducto(){
    
    			
    			if (isset($_POST["usuarioPe"])) {
    				
    				$datos1=array("FechaPedido"=>'NOW()',
    				"NumeroPedido"=>null,
    				"envio"=>0,
    				"idUsuario"=>$_POST["usuarioPe"],
    				"SubTotal"=>$_POST['subtotal_De'],
    				"costoEnvio"=>$_POST['costoEnvio_De'],
    				"IGV"=>$_POST['igv_De'],
    				"total"=>$$_POST['total_De']
    				);
    
    				#detalle
    				$datos2= array("cantidad"=>$_POST['cantidad_De'],
    				"precio"=>$_POST['precio_De'],
    				"idProducto"=>$_POST['idproducto_De']
    				);
    
    
    				$tabla1="pedido";
    				$tabla2="detallepedido";
    
    				$respuesta=ModeloPedido::mdlRegistrarPedido($tabla1,$datos1,$tabla2,$datos2);
    				
    
    
    			}
    		}
    
    		
    }


    Modelo PHP
    require_once "conexion.php";
    
    class ModeloPedido
    {
    
    
    
    
    	/*=============================================
    	NUEVO PEDIO 
    	=============================================*/
    
    	static public function mdlRegistrarPedido($tabla1,$datos1,$tabla2,$datos2){
    
    		$stmt = Conexion::conectar()->prepare("INSERT INTO $tabla1(FechaPedido, NumeroPedido, envio, idUsuario, SubTotal, CostoEnvio, IGV, total)
    					VALUES(:FechaPedido,:EstadoPedido,:NumeroPedido,:envio,:idUsuario,:SubTotal,:CostoEnvio,:IGV, :total)"); 
    
    				$stmt->beginTransaction();
    
    				$stmt->bindValue(':FechaPedido', $datos1["FechaPedido"], PDO::PARAM_STR); 
    				$stmt->bindValue(':NumeroPedido', $datos1["NumeroPedido"], PDO::PARAM_STR);
    				$stmt->bindValue(':envio', $datos1["envio"], PDO::PARAM_INT);
    				$stmt->bindValue(':idUsuario', $datos1["idUsuario"], PDO::PARAM_INT);
    				$stmt->bindValue(':SubTotal', $datos1["SubTotal"], PDO::PARAM_STR);
    				$stmt->bindValue(':CostoEnvio', $datos1["CostoEnvio"], PDO::PARAM_STR);
    				$stmt->bindValue(':IGV', $datos1["IGV"], PDO::PARAM_STR);
    				$stmt->bindValue(':total', $datos1["total"], PDO::PARAM_STR);
    
    
    				$stmt->execute(); 
    				$stmt->commit(); 
    				$lastId = $stmt->lastInsertId();
    				
    				$piezas=explode(",",$datos2["cantidad"]);
    				$pieza2=explode(",",$datos2["precio"]);
    				$pieza3=explode(",",$datos2["idProducto"]);
    				
    				
    
    				for ($i=0; $i < sizeof($piezas); $i++) { 
    				$stmt->prepare("INSERT INTO $tabla2(cantidad, Precio, idPedido, idProducto) 
    					VALUES(:cantidad, :Precio, :idPedido, :idProducto)"); 
    				$stmt->beginTransaction(); 
    
    				$stmt->execute(array(':cantidad'=>$piezas[$i],
    									':Precio'=>$pieza2[$i],
    									':idPedido'=>$lastId,
    									':idProducto'=>$pieza3[$i]
    								)); 
    				$stmt->commit();
    				}
    
    	}
    }
    	



    Es el codigo que tengo y no me a insertado a la base de datos, no retorna ningun error.

    Gracias.
      Votos: 0 - Link respuesta
     
  • Fecha: 27-02-2018 09:56:43 Ok pero si ves esto:

    <form method="POST">

    Allí donde le dices que envíe la información hacia tu controlador o a la función dentro de este por ejemplo??

    en codeigniter sería esto:

    
    <form method="post" action="<?php echo base_url() ?>controlador/function">
    
    


    allí le estoy indicando al formulario que envía los campos hacia esa función de ese controlador, en tu código se esta enviando hacia si mismo, salvo que tengas alguna función o captura en dicha pagina que no has mostrando, no estas haciendo nada, solo enviado el form hacia si mismo.
      Votos: 0 - Link respuesta
     
  • Fecha: 27-02-2018 10:30:35 Eso parte lo manejo con una funcion aparte, pero digame si el codigo del controlador y el modelo; estan bien o hay que cambiar algo.   Votos: 0 - Link respuesta
     
  • Fecha: 27-02-2018 11:23:29 Sigo sin entender tu codigo y si no muestra esa fulana fu8ncion no se te puede ayudar, ya que no muestra ni veo como le haces llegar a tu funcion la informacion de tu formulario, es decir, ve esto:

    No es lo mismo esto, que se envia hacia si mismo
    <form method="post">
    


    que este que si debería en teoria llegar hasta tu controlador
    <form method="post" action="ControladorPedidos/ctrPedidoProducto">
    


    se ve un poco distinto a lo que tienes alli, es decir el formulario con esa cabecera si debería de llegar hasta tu función en el controlador y ejecutar las acciones que pretendes, pero no creo que mágicamente php detecte y envíe dicha información hacia esa función dentro de ese controlados sin haber hecho la referencia a estos.

    así que muestra la función que dices que maneja la llegada del formulario y envía la info hacia la función del controlador y veremos.
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com