Comunidad de diseño web y desarrollo en internet online

Problema con insercion en tablas 2 tablas

Citar            
MensajeEscrito el 07 Sep 2011 05:27 pm
hola muchachos disculpen la molestia , pero necesito una ayuda es q estoy :shock: :cry: .... tengo un formulario el cual inserta la info en 2 tablas de mi bd, en una se inserta datos generales y en otra coloca los id de las imagenes que el usuario selecciono las cuales estaran ligadas a la tabla principal mediante el id del registro insertado. es decir cada registro de la segunda tabla tiene un campo "idProc" el cual sera = al id del registro de la tabla principal, ademas de esto, cuando el usuario selecciona las imagenes se activa en cada una un inputtext y un textarea en los cuales ingresara la cantidad por cada imagen y la descripcion de la misma respectivamente.

cuando presiono guardar el me realiza la insercion de la info de la tabla principal y atraves de mysqli_insert id recupero el id del registro que acabo de insertar para proceder a realizar la insercion de las imagenes, el orden en el cual aparecera y la informacion adicional de cada una.

el problema es que no logro hacer que me almacene la informacion adicional (cantidad y descripcion); por mas veces que he intentado la verdad no tengo idea de como realizarlo, es que consegui hacer q me almacenara cada imagen, con el id del registro al que coresponden, la posicion en la que van a aparecer pero de resto no tengo idea de que hacer les coloco el codigo de mi insercion a ver si me pueden ayudar a realizarla, por fa de verdad no se mucho de php y mysql aun soy super principiante...

Código PHP :

$sql = "INSERT INTO req_proceso (cid,proceso,espe,nivel,explicacion,tipo,modelo,formato,mc) VALUES ('$cid','$proceso','$espe','$nivel','$explicacion','$tipo','$modelo','$formato','$mc')";
   $q = mysqli_query($conexion,$sql);
   $idProc = mysqli_insert_id($conexion);  //recupero el id del registro que acabo de hacer 
   mysqli_query($conexion,"SET NAMES 'utf8'");
   
   if($q == true){
//utilice un foreach para almacenar el id de cada imagen y el orden en el cual van a aparecer, intente usar foreach dentro de foreach porque la verdad no tengo idea d que hacer pero aun asi nada  :cry: 
      if($_POST['insc']){
         foreach($_POST['insc'] as $grid_order=>$grid_id){ //indico el orden de las imagenes y el id de cada una
            mysqli_query($conexion,"INSERT INTO req_posicion (grid_order,grid_id_fk,user_id_fk) VALUES ('$grid_order','$grid_id','$idProc')");
         }
      }
      $msj = 'Información almacenada de forma exitosa, <br /><a href="../explicacion_.php?cid='.$cid.'&pro='.$proceso.'" target="_blank">Clic Aquí</a> para ver o <a href="req_edit.php?cid='.$cid.'&idProc='.$idProc.'">Clic Aquí para Editar</a>';
   }else{
      $msj = 'error, intente nuevamente <a href="javascript:history.back(1)">Clic Aquí</a> para volver atras';
   }


por fa muchachos si me pueden ayudar se los voy a agradecer toda la vida toy q me aranco los pelos!! :cry: :cry: :cry: :cry: :cry: :cry:

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 08 Sep 2011 01:44 am
esto: mysqli_query

deberia ser: mysql_query

me imagino que eso se te traspapelo en tipeo y no creo que sea el problema original, pero cabe decirlo xD

Por sebifrost

61 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Sep 2011 12:08 pm
Después de cada insert deberías verificar si ocurrió un error. Sin teber la misma base de datos que tú no lo puedo asegurar pero lo más probable es que esté ocurriendo un error del tipo de violación de integridad referencial o datos no admitidos en alguno de los campos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 08 Sep 2011 04:05 pm
sebifrost, la verdad "mysqli_query" si es correcto puedes averiguarlo si gustas...
DriverOp, gracias por responder, la verdad el error era que no sabia como insertar esos datos entonces tendia a hacer foreach dentro de foreach y entonces me guardaba muchas veces lo mismo jeje, ahora se me ocurrio esto, ya me anda pero no se si este bn hacer tanta lokera jeje

Código PHP :

//obtengo los datos de cantidades y descripciones
$can= implode(',',$_POST['cant']);
$des= implode(',',$_POST['desc']);
$cant= explode(',',$can);
$desc= explode(',',$des);

$sql = "INSERT INTO req_proceso (cid,proceso,espe,nivel,explicacion,tipo,modelo,formato,mc) VALUES ('$cid','$proceso','$espe','$nivel','$explicacion','$tipo','$modelo','$formato','$mc')";
   $q = mysqli_query($conexion,$sql);
   $idProc = mysqli_insert_id($conexion);   
   mysqli_query($conexion,"SET NAMES 'utf8'");
   
   if($q == true){

      if($_POST['insc']){
         foreach($_POST['insc'] as $grid_order=>$grid_id){
            //agregue las cantidades y descripciones dentro del foreach indicando q la posicion del array que va a almacenar va ser la que coresponda al orden...
            $cantidad = $cant[$grid_order];
            $descrip = $desc[$grid_order];
            mysqli_query($conexion,"INSERT INTO req_posicion (grid_order,grid_id_fk,user_id_fk,cantidad,descripcion) VALUES ('$grid_order','$grid_id','$idProc','$cantidad','$descrip')");
         }
      }


y asi logre hacer que me funcionara, si alguien se le ocurre algo mejor y mas optimizado, tmbn sria chevere pero ya horita toy :) porque por lo menos me funciona jeje

Por jakiras

Claber

148 de clabLevel



Genero:Femenino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.