Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Insertar registro en BD - Problema

Estas en el tema de Insertar registro en BD - Problema en el foro de PHP en Foros del Web. Buenas foro.. Tengo un problema, creo que es de concatenacion porque controle todo lo demas y no hay error.. Si alguien me podria ayudar, gracias. ...
  #1 (permalink)  
Antiguo 04/06/2018, 14:22
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 19
Antigüedad: 2 años, 4 meses
Puntos: 0
Insertar registro en BD - Problema

Buenas foro..
Tengo un problema, creo que es de concatenacion porque controle todo lo demas y no hay error.. Si alguien me podria ayudar, gracias.
Dejo parte del codigo..

Código PHP:
Ver original
  1. function alta($fields, $table, $argumentos){
  2.         $sql = "";
  3.         foreach ($argumentos as $key => $value) {
  4.             $sql = "
  5.                 INSERT INTO $table(
  6.                     $fields
  7.                 )VALUES(
  8.                     '".$value['nombre']."','".$value['desc']."','.$value['rubro'].','.$value['subrubro'].','.$value['precioIn'].','.$value['precioOut'].','.$value['unidad'].','.$value['pro'].')";
  9.         }      
  10.         try{
  11.             $this->conexion->query($sql);
  12.             return "<div style='color:green;'>Se ha insertado un articulo de manera correcta </div>";
  13.         }catch(PDOException $e){
  14.             print_r($e);
  15.         }
  16.     }


Código PHP:
Ver original
  1. <?php
  2.     require_once("../datos/clase.php");
  3.  
  4.     $db = new baseDeDatos("mysql:dbname=corralon;host=localhost","root","root123");
  5.     $db->conexion();
  6.     $columnas = "nameArt,descArt,rubroId,subRubroId,precioEntradaArt,precioSalidaArt,unidadVentaArt,proveedorId";
  7.     $campos = array($_POST);
  8.  
  9.     echo "<pre>";print_r($campos);echo "</pre>";
  10.    
  11.     $articulo = $db->alta($columnas,"articulo",$campos);

Código HTML:
Ver original
  1. <form action="insertar.php" method="POST">
  2.                             <div class="form-group">
  3.                                 <label for="nombre">Nombre</label>
  4.                                 <input type="text" name="nombre" id="nombre" class="form-control">
  5.                             </div>
  6.                             <div class="form-group">
  7.                                 <label for="desc">Desc</label>
  8.                                 <input type="text" name="desc" id="desc" class="form-control">
  9.                             </div>
  10.                             <div class="form-group">
  11.                                 <label for="rubro">rubro</label>
  12.                                 <input type="text" name="rubro" id="rubro" class="form-control">
  13.                             </div>
  14.                             <div class="form-group">
  15.                                 <label for="subrubro">subrubro</label>
  16.                                 <input type="text" name="subrubro" id="subrubro" class="form-control">
  17.                             </div>
  18.                             <div class="form-group">
  19.                                 <label for="precioIn">precio in</label>
  20.                                 <input type="text" name="precioIn" id="precioIn" class="form-control">
  21.                             </div>
  22.                             <div class="form-group">
  23.                                 <label for="precioOut">precio out</label>
  24.                                 <input type="text" name="precioOut" id="precioOut" class="form-control">
  25.                             </div>
  26.                             <div class="form-group">
  27.                                 <label for="unidad">unidad</label>
  28.                                 <input type="text" name="unidad" id="unidad" class="form-control">
  29.                             </div>
  30.                             <div class="form-group">
  31.                                 <label for="pro">pro</label>
  32.                                 <input type="text" name="pro" id="pro" class="form-control">
  33.                             </div>
  34.                             <div class="form-group">
  35.                                 <button type="submit" class="btn btn-info">Crear un articulo</button>
  36.                             </div>
  37.                         </form>


Lo raro, es que el formulario envia bien los datos..
El mensaje "return "<div style='color:green;'>Se ha insertado un articulo de manera correcta </div>";"

funciona bien..
Pero no se inserta el dato en la base..
  #2 (permalink)  
Antiguo 04/06/2018, 15:19
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 10 años, 3 meses
Puntos: 528
Respuesta: Insertar registro en BD - Problema

Pues sí, en el mismo post se puede ver que la sintáxis se rompe, si usas un editor con opción de coloreado de sintáxis igual lo podrás ver.

En lo personal, prefiero esta sintáxis:
Código PHP:
Ver original
  1. $sql = "
  2.                INSERT INTO $table(
  3.                    $fields
  4.                )VALUES(
  5.                    '{$value['nombre']}','{$value['desc']}','{$value['rubro']}','{$value['subrubro']}'.......etc)";
  #3 (permalink)  
Antiguo 05/06/2018, 05:13
 
Fecha de Ingreso: abril-2016
Ubicación: Cordoba
Mensajes: 19
Antigüedad: 2 años, 4 meses
Puntos: 0
Respuesta: Insertar registro en BD - Problema

Gracias ocp001a!. Funciona perfecto!.



La zona horaria es GMT -6. Ahora son las 00:01.