Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-11-2010
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Lightbulb Error al insertar varios registros

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
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #2  
Antiguo 23-11-2010
Avatar de el_barto
el_barto el_barto is offline
Miembro
 
Registrado: may 2005
Ubicación: Bogota Colombia
Posts: 533
Poder: 19
el_barto Va por buen camino
Question

Buenas tardes, hice una modificacion a mi codigo, agregando el string de conexion al insert, ahora ya confirme que siempre me inserte la primera pregunta, cosa que no pasaba antes, pero en los registros que fallan me muestra este error "Warning: mysql_query(): supplied argument is not a valid MySQL-Link", acaso debo cerrar la conexion a la BD o que debo hacer para evitar este error, gracias. Anexo el codigo como quedo despues de mi ultimo cambio.

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,$link);
  
//mysql_close();
  
return $consulta;
 } 
__________________
Una forma de alcanzar tus metas es ayudando a otros a alcanzar las suyas
Responder Con Cita
  #3  
Antiguo 18-12-2010
georkis georkis is offline
Miembro
 
Registrado: abr 2008
Ubicación: Cuba
Posts: 39
Poder: 0
georkis Va por buen camino
Colega... te ayudo...

Hace poco publique un código en el sitio www.mygnet.com, pero te lo ofresco por acá... es este

// Esta es la página form.php

<form id="form1" name="form1" method="post" action="form_1.php">
<input name="cantidad" type="text" id="cantidad" value="" />
<input type="submit" name="Submit" value="Agregar cantidad de registros" />
</form>

//Esta es la página form_1.php

<?
if( isset( $_POST["submit"] ) ) // se envio el formulario?
echo "Se ha insertado los registros satisfactoriamente";
for($x =0 ; $x <= $_POST['cantidad'] ; $x++) // recorremos los posibles registros, puedes poner los que necesites
// se recuperan cada uno de los datos del form siempre y cuando se hayan enviado, de lo contrario los omite

if(isset($_POST["opcStatus" . $x])) // se envio el registro opcStatus1, opcStatus2, ... etc. ?
{
// obtenemos cada uno de los datos
$txtNombre= $_POST["txtNombre".$x ];
$txtApellidos=$_POST["txtApellido".$x ];

// tu cadena correspondiente para la actualizacion de datos.

/*Justo aqui es donde tu colocas el codigo correspondiente a la actualizacion
26.
27.o a la insercion de los datos a tu base de datos, este script se limita a
28.
29.proponer la funcionalidad, el resto esta de tu parte. */
$insertSQL="INSERT INTO usuarios (nombre, apellidos) VALUES ('$txtNombre', '$txtApellidos')";
mysql_select_db($database_my, $my);
$Result1 = mysql_query($insertSQL, $my) or die(mysql_error());


}

?>
</p>
<p>
<?
$cantidad=1;

While($cantidad<=$_POST['cantidad']){



?>
</p>
<form method="POST">
<p>Registro <? echo "$cantidad"; ?><br>
<br>
Nombre:
<input type="text" name="txtNombre<? echo "$cantidad";?>">
Apellidos:
<input type="text" name="txtApellido<? echo "$cantidad";?>">
<br>
:
<input name="opcStatus<? echo "$cantidad";?>" type="hidden"">
<input name="cantidad" type="hidden" id="cantidad" value="<? echo "$_POST[cantidad]"; ?>" />
</p>
<hr>
<?
$cantidad++;
}

?>
<input type ="submit" name="submit" value="OK">
</form>

/// base de datos de MySQL
CREATE TABLE usuarios (
ID int(3) NOT NULL auto_increment,
nombre varchar(15) NOT NULL,
apellidos varchar(25) NOT NULL,
PRIMARY KEY (ID)
)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error al insertar registros con dbexpress alopete Conexión con bases de datos 1 23-04-2010 10:45:24
Error al insertar registros en el StringGrid Elite237 OOP 21 06-11-2008 20:01:17
Como puedo insertar varios registros con una instruccion de SQL marcoev MySQL 7 24-01-2007 22:54:00
Error al insertar registros en Access Moises22 Conexión con bases de datos 2 09-01-2006 14:36:25
Error al insertar o borrar registros en firebird pepitu Firebird e Interbase 3 26-09-2005 14:56:57


La franja horaria es GMT +2. Ahora son las 12:00:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi