Foros del Web » Programando para Internet » PHP »

PHP OO Problema con inserción de registros en PHP

Estas en el tema de Problema con inserción de registros en PHP en el foro de PHP en Foros del Web. Muy buenos días, no se si tengo un problema ya que no lo he detectado yo, el cilente me lo ha comentado, es el siguiente: ...
  #1 (permalink)  
Antiguo 07/05/2012, 11:15
 
Fecha de Ingreso: diciembre-2011
Ubicación: México
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Problema con inserción de registros en PHP

Muy buenos días, no se si tengo un problema ya que no lo he detectado yo, el cilente me lo ha comentado, es el siguiente:

Desarrolle un sistema que captura partes de algun tipo con sus caracteristicas correspondientes, para despues mostrar los datos en un formulario de verificación de partes, todo lo hace excelentemente, de hecho he realizado pruebas con uno, dos y tres usuarios simultaneamente y no he tendio problemas, pero mi cliente si, dice que captura 80 productos y de ellos 2 no aparece la información, estoy creyendo que como capturan 3 usuarios a la vez la información en algun momento de un usuario se captura junto con la de otro y por consiguiente la del primero se pierde.

Pero es solo una hipotesis porque aun no puedo saber si es esto ya que a mi no me lo ha hecho.

Les pido que me puedan ayudar a identificar si este es el problema y si es así, como puedo controlar que por ejemplo no se dupliquen los registros o que no se pierda lo que captura un usuario u otro.

Les agradezco cualquier ayuda que pudieran ofrecerme u orientarme que camino debo tomar para solucionarlo, muchas gracias de antemano.

Acá les dejo el código.

Código PHP:
$cp=$_POST['cantplano'];
              
$cf=$_POST['cantfoto'];
              
$cman=$_POST['cman'];
              
$cpro=$_POST['cpro'];
              
$cm=$_POST['cantmedidas'];
              
$copv=$_POST['cantopv'];
              
$noparte=$_POST['noparte'];
              
$nombre=$_POST['nombreparte'];
              
//calculo de aql
              
$aqlasoc=$_POST['aqlasoc'];
              
$db_conexionmysql_connect("localhost""xxxx""xxxxxx") or die("No se pudo conectar a la Base de datos") or die(mysql_error());
                
mysql_select_db("dbxxxxx") or die(mysql_error());
              
mysql_query("SET NAMES utf8");
               
              
//Primer insert en partes
              
mysql_query("INSERT INTO partes (noparte, nombre, aql) values('$noparte', '$nombre', '$aqlasoc')") or die(mysql_error());  
              
              
//obtenemos id de parte insertada
              
$rins=mysql_query("select * from partes") or die($mysql_error());
              while(
$rowi=mysql_fetch_array($rins))
                {
                 
$idparte=$rowi['id_parte'];
                }
                
              
//planos o especificaciones
              
for($k=1$k<=$cp$k++)
               {
                
$vartemp="poe".$k;
                if(
$_FILES[$vartemp]['name']=="")
                  {
                   
$poe="NA";
                  }
                else if(isset(
$_FILES[$vartemp]['tmp_name']))
                  {
                   
$ruta_destino 'C:/xampp/htdocs/riparpro2/partes/planoespec/';
                   if(
move_uploaded_file($_FILES[$vartemp]['tmp_name'], $ruta_destino.$_FILES[$vartemp]['name']))
                     {
                      
$poe=$_FILES[$vartemp]['name'];
                      
//Segundo insert en plano parte
                      
mysql_query("INSERT INTO planoparte (id_parte, plano) values('$idparte', '$poe')") or die(mysql_error());
                     }
//fin if subir plano
                  
}
                else {echo 
"No se pudo subir el plano al servidor.";}
                  
               }  
               
               
              
               
              
//fotografias
              
for($f=1$f<=$cf$f++)
               {
                 
$vartempf="foto".$f;
                 if(
$_FILES[$vartempf]['name']=="")
                   {
                    
$foto="NA";
                   }
                  else if(isset(
$_FILES[$vartempf]['tmp_name']))
                     {
                      
$ruta_destinof 'C:/xampp/htdocs/riparpro2/partes/fotos/';
                      if(
move_uploaded_file($_FILES[$vartempf]['tmp_name'], $ruta_destinof.$_FILES[$vartempf]['name']))
                       {
                        
$foto=$_FILES[$vartempf]['name'];
                        
//Tercer insert en foto parte
                        
mysql_query("INSERT INTO fotoparte (id_parte, foto) values('$idparte', '$foto')") or die(mysql_error());
                       }
//fin if subir foto
                     
}
                  else {echo 
"No se pudo subir el plano al servidor.";}
                 }
                 
               
               
                 
               
//manufacturadores
               
for($man=1$man<=$cman$man++)
                {
                 
$varmantemp="man".$man;
                 
$manu=$_POST[$varmantemp];
                 
//Cuarto insert en manufacturadores parte
                 
mysql_query("INSERT INTO manuparte (id_parte, manu) values('$idparte', '$manu')") or die(mysql_error());
                }
                
               
//proveedores
               
for($pro=1$pro<=$cpro$pro++)
                {
                 
$varprotemp="proveedor".$pro;
                 
$proveedor=$_POST[$varprotemp];
                 
//Quinto insert en proveedores parte
                 
mysql_query("INSERT INTO proveeparte (id_parte, provee) values('$idparte', '$proveedor')") or die(mysql_error());
                }
                
                             
              
//medidas
               
if(($cm!="") or ($cm!=0))
                {
                  for(
$cd=1$cd<=$cm$cd++)
                   {
                        
$vartemp1="mr".$cd;
                        
$vartemp2="tolerancia".$cd;
                        
$vartemp3="um".$cd;
                        
$vartotal=$_POST[$vartemp1]."|".$_POST[$vartemp2]."|".$_POST[$vartemp3];
                        
// Sexto y último insert  
                        
mysql_query("INSERT INTO `medidap` (`id_parte`, `cont`) values($idparte,'$vartotal')") or die(mysql_error());
                    }  
// fin for medidas
                 
}  //fin if medidas
                
              //Otro puntos a verificar
              
for($er=1$er<=$copv$er++)
               {
                
$temporal="opv".$er;
                
$varopv=$_POST[$temporal];
                if(
$varopv!="")
                  {
                    
//ultimo insert en otros puntos parte
                    
mysql_query("INSERT INTO puntos (id_parte, opv) values('$idparte', '$varopv')") or die(mysql_error());
                  }
               } 
  #2 (permalink)  
Antiguo 07/05/2012, 11:45
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con inserción de registros en PHP

Si en tu tabla manejas índices únicos (tipo incremental) no deberías tener problemas de choques con otros usuarios, por muchos que fueran. ¿Los que capturan te han informado de algún error?
  #3 (permalink)  
Antiguo 07/05/2012, 12:48
 
Fecha de Ingreso: diciembre-2011
Ubicación: México
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con inserción de registros en PHP

Así es manejo tablas con indice unico y autoincrement, como comento arriba yo lo he probado con varios usuarios y ningun problema me da, lo que se me ocurrio que pudiera ser fue eso que estuvieran chocando en la inserción de registros, otra pregunta crees que el problema de guardar sea porque lo instalaron en una maquina virtual?

Yolo tengo en un servidor local, pero ellos lo instalaron en una maquina virtual, puede que se pierdan algunos datos por este tipo de situación.

Ellos no me reportan algun error en pantalla, o algun problema con el sistema, solo que al ir al momento de verificacion de las partes de 80 que capturan 2 no aparece la información y otra mas aparece con informacion de otra parte.

Revise la tabla y no aparece la información porque no existe, como si no hubiera grabado y alguna informacion tiene el indice de parte que no le corresponde.

Apenas hoy ire a ver que es lo que hacen porque aquí no me da ningun solo error.

Etiquetas: php+bd+mysql, sesiones_en_php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:07.