Foros del Web » Programando para Internet » PHP »

control de insert

Estas en el tema de control de insert en el foro de PHP en Foros del Web. hola amigos como estan ...espero que bien tengo una duda sobre como controlar los insert osea en mi pagina ejecuto 5 insert los cuales deverian ...
  #1 (permalink)  
Antiguo 21/07/2008, 11:06
 
Fecha de Ingreso: noviembre-2004
Mensajes: 181
Antigüedad: 19 años, 5 meses
Puntos: 1
De acuerdo control de insert

hola amigos como estan ...espero que bien tengo una duda sobre como controlar los insert osea en mi pagina ejecuto 5 insert los cuales deverian ejecutarse todos o ninguno ahy esta el problema por q no se me ocurre nada ya la unica manera q tengo es manejarla por codigo no se me ocurre miren el codigo asi lo tengo ahora ......


$ress=mysql_db_query("sisproed",$sqlq1);
$ress1=mysql_db_query("sisproed",$sqlq2);
$ress2=mysql_db_query("sisproed",$sqlq5);
$ress3=mysql_db_query("sisproed",$sqlq6);
$ress4=mysql_db_query("sisproed",$sqlq7);


if (!$ress)
{
echo "<center><h3><b>no se pudo insertar en la base de datos del padre1</b></h3></center>\n<br>";
echo "<center><h3><b>vuelva atras e intente de nuevo</b></h3></center><br>";
mysql_close();
}
else
{
if ((!$ress1 ))
{
echo "<center><h3><b>no se pudo insertar en la base de datos del padre2</b></h3></center>\n<br>";
echo "<center><h3><b>vuelva atras e intente de nuevo</b></h3></center><br>";
mysql_close();
}
else
{
if ((!$ress2) || (!$ress3))
{
echo "<center><h3><b>El alumno ya tiene asociado a este familiar</b></h3></center>\n<br>";
echo "<center><h3><b>vuelva atras e intente de nuevo</b></h3></center><br>";
mysql_close();
}
else
{
if ((!$ress4) )
{
echo "<center><h3><b>no se pudo ingresar la vivienda</b></h3></center>\n<br>";
echo "<center><h3><b>vuelva atras e intente de nuevo</b></h3></center><br>";
mysql_close();
}
else
{

echo "<center><h3><b>Datos ingresados correctamente del padre</b></h3></center><br><br>";
echo "<a href='ingreso_inscripcion.php?r1=$rut1&cur=$curso& rut_p=$txtrut&rut_m=$txt2'><center><h3><b>Seguir con el proceso de matricula</b></h3></center></a>";
mysql_close();

}
echo "<center><h3><b>Datos ingresados correctamente del padre</b></h3></center><br><br>";

}

echo "<center><h3><b>Datos ingresados correctamente del padre</b></h3></center><br><br>";

}
echo "<center><h3><b>siga con la inscripcion</b></h3></center><br><br>";

}

lo unico q hacen es traer si se ejecutaron las consultas pero pero en caso de error de estar las primary key duplicada no inserta y sigue el proximo insert y si este no hay problema inserta y no deveria pasar eso (inserto todo o nada)
espero q me entiendan..... :)
  #2 (permalink)  
Antiguo 21/07/2008, 12:37
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: control de insert

bueno praa no crear conflicto deberias de

1.- lock tables 'latabla'; //para que no te esten usando los datos mientras
2.- ejecutas los 5 insert
3.- if($res && $res2 && $res3 && $res4 && $res5){
todos ok
}else{
alguno o todos fallaron
borrar posibles datos mal ingresados
}
4.- unlock tables //liberamos todo
5.- mysql_close();

espeor te sirva la guia
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 22/07/2008, 07:18
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: control de insert

Usá transacciones (si no te queda claro lo que escribí ahí, siempre podés buscar en internet "transacciones").

No estás mostrando si los 5 "insert" son en la misma tabla, si es así podés hacer esto:

Código:
INSERT INTO tabla(campo1, ..., campoN)
VALUES ( valores del registro1 ), ( valores del registro 2 ), .... ( valores del registro N)
Con esto estás haciendo las 5 inserciones con una sola consulta.


Saludos.
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 01:13.