Buenos dias, he estado trabajando con PHP y he hecho un for para insertar una serie de respuestas a una encuesta que se carga dinamicamente pero al momento de insertar algunas respuestas si se insertan y otras no se insertan en mi base de datos MYSQL, he comprobado que es aleatorio no siempre se insertan las mismas respuestas por eso creo que es algo que me hace falta para manejar la transaccionalidad, si me puedieran ayudar al respecto les agradeceria al respecto, anexo el codigo usado:
Aca recorro el formulario y llamo la funcion guardarResPUMOD que manda a ejecutar el Query.
Código PHP:
function guardarRespuestas(formCrear,i,j){
for(c=0; c<parseInt(i); c++){
var pcerrada=document.getElementById("preguntaCerrada"+c).value;
var rcerrada=document.getElementById("respuestaCerrada"+c).value;
formCrear.action="../../../src/despacho/guardarResPUMOD.php?pcerrada="+pcerrada+"&rcerrada="+rcerrada+"&val=c"+"&pasadas="+<?php echo($pasadas); ?>+"&idDespacho="+<?php echo($idDespacho); ?>+"&idDetalle="+<?php echo($idDetalle); ?>+"&idCultivo="+<?php echo($idCultivo); ?>; // NUEVO
formCrear.submit();
}
for(a=0; a<parseInt(j); a++){
var pabierta=document.getElementById("preguntaAbierta"+a).value;
var rabierta=document.getElementById("respuestaAbierta"+a).value;
formCrear.action="../../../src/despacho/guardarResPUMOD.php?pabierta="+pabierta+"&rabierta="+rabierta+"&val=a"+"&pasadas="+<?php echo($pasadas); ?>+"&idDespacho="+<?php echo($idDespacho); ?>+"&idDetalle="+<?php echo($idDetalle); ?>+"&idCultivo="+<?php echo($idCultivo); ?>; // NUEVO
formCrear.submit();
}
}
Aca muestro lo que estoy haciendo en el archivo guardarResPUMOD.php
Código PHP:
if ($_GET["val"]=="c") {
$idDespacho = $_GET["idDespacho"];
$idDetalle = $_GET["idDetalle"];
$idCultivo = $_GET["idCultivo"];
$pcerrada = $_GET["pcerrada"];
$rcerrada = $_GET["rcerrada"];
$pasadas = $_GET["pasadas"];
if(!empty($rcerrada)){
$consulta = guardarPU($idDespacho,$idDetalle,$idCultivo,$pcerrada,$rcerrada,$pasadas);
}
}
if ($_GET["val"]=="a") {
$idDespacho = $_GET["idDespacho"];
$idDetalle = $_GET["idDetalle"];
$idCultivo = $_GET["idCultivo"];
$pabierta = $_GET["pabierta"];
$rabierta = $_GET["rabierta"];
$pasadas = $_GET["pasadas"];
if(!empty($rabierta)){
$consulta = guardarPU($idDespacho,$idDetalle,$idCultivo,$pabierta,$rabierta,$pasadas);
}
}
Y aca esta la funcion que envio a la BD:
Código PHP:
function guardarPU($idDespacho,$idDetalle,$idCultivo,$pregunta,$respuesta,$pasadas){
require_once("../functions.php");
$consulta = 1;
$query = "INSERT INTO RESP_PUERTO (ID_PASADAS,DESP_CONS,CTRACOP_IDENT,ACOPTR_CONS,PREG_CONS,RESP_DESC)"
. " VALUES($pasadas,$idDespacho,$idDetalle,$idCultivo,$pregunta,'$respuesta')";
mysql_query($query);
//mysql_close();
return $consulta;
}
Debo hacer algo adicional para que se inserten siempre las respuestas?, Gracias