Foros del Web » Programando para Internet » PHP »

repeticion de contenidos en insertar registros

Estas en el tema de repeticion de contenidos en insertar registros en el foro de PHP en Foros del Web. Buenos dias amigos tengo una tabla para ingresar mis registros http://grupogba.com/modelo.php y funciona "bien" salvo cuando hago click en f5 y se guardan en mi ...
  #1 (permalink)  
Antiguo 02/04/2012, 11:50
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
repeticion de contenidos en insertar registros

Buenos dias amigos
tengo una tabla para ingresar mis registros

http://grupogba.com/modelo.php

y funciona "bien"
salvo cuando hago click en f5 y se guardan en mi bd mysql
y se visualiza en la pantalla el nombre de cada caja
lo mismo sucede cuando hago click en el boton insertar registros

agradeceria su orientacion
para normalizar mi registro


Gracias
  #2 (permalink)  
Antiguo 02/04/2012, 11:54
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 139
Respuesta: repeticion de contenidos en insertar registros

Tienes que mostrar el codigo para decirte donde es el problema.
  #3 (permalink)  
Antiguo 02/04/2012, 12:07
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
Respuesta: repeticion de contenidos en insertar registros

<form id="insertar" name="insertar" method="post" action="">
<p>
<input name="comprobante" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="comprobante" value="Comprobante" size="20" />
</p>
<?php
if ($totEmp> 0) {
$queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
while ($rowEmp = mysql_fetch_assoc($resEmp)) {
echo " ".$rowEmp['comprobante']."<br>";
}
}
?>
<p>
<input name="ruc" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="ruc" value="RUC" size="20" />
</p>
<?php
if ($totEmp> 0) {
$queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
while ($rowEmp = mysql_fetch_assoc($resEmp)) {
echo " ".$rowEmp['ruc']."<br>";
}
}
?>
<p>
<input name="razon" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="razon" value="Razon Social" size="20" />
</p>
<?php
if ($totEmp> 0) {
$queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
while ($rowEmp = mysql_fetch_assoc($resEmp)) {
echo " ".$rowEmp['razon']."<br>";
}
}
?>
<input type="submit" name="Submit" value="Insertar Registro" />
<input type="hidden" name="action" value="add" />
</form>

<?php if ($state) { ?>
<p><em>Registro insertado correctamente</em></p>
<?php } ?>
  #4 (permalink)  
Antiguo 02/04/2012, 12:21
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 139
Respuesta: repeticion de contenidos en insertar registros

Este codigo que me enviaste lo limpie un poco.
observa bien le mio y compararlo con el tuyo.

Código PHP:
Ver original
  1. if ($totEmp > 0) {
  2. $queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
  3. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  4.  
  5. if (mysql_num_rows($resEmp)){
  6. $ruc = "";
  7. $comprobante = "";
  8. $razon = "";
  9. while ($rowEmp = mysql_fetch_assoc($resEmp)) {
  10.    
  11. $ruc .= $rowEmp['ruc']."<br />";
  12. $comprobante .= $rowEmp['comprobante']."<br />";
  13. $razon .= $rowEmp['razon']."<br />";
  14.  
  15. }
  16.  
  17. }
  18. mysql_free_result($conexion);
  19.  
  20.  
  21. }
  22.  
  23. <form id="insertar" name="insertar" method="post" action="">
  24. <p>
  25. <input name="comprobante" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="comprobante" value="Comprobante" size="20" />
  26. </p>
  27. <?php
  28.         echo $comprobante;
  29. ?>
  30. <p>
  31. <input name="ruc" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="ruc" value="RUC" size="20" />
  32. </p>
  33. <?php
  34.         echo $ruc;
  35. ?>
  36. <p>
  37. <input name="razon" onfocus="if(this.value==this.defaultValue)this.val ue='';" onblur="if(this.value=='')this.value=this.defaultV alue;" type="text" id="razon" value="Razon Social" size="20" />
  38. </p>
  39. <?php
  40.         echo $razon;
  41. ?>
  42. <input type="submit" name="Submit" value="Insertar Registro" />
  43. <input type="hidden" name="action" value="add" />
  44. </form>
  45.  
  46. <?php if ($state) { ?>
  47. <p><em>Registro insertado correctamente</em></p>
  48. <?php } ?>

Este no es el archivo que quiero ver , quiero ver donde hacers el insert tampoco veo donde declaras $totEmp
  #5 (permalink)  
Antiguo 02/04/2012, 12:30
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
Respuesta: repeticion de contenidos en insertar registros

<?php
$state = false;
if ($_POST['action'] == "add") {
$conexion = mysql_connect("localhost", "mayito_luchito", "ninguna");
mysql_select_db("mayito_conta", $conexion);

$que = "INSERT INTO empresa (comprobante, ruc, razon) ";
$que.= "VALUES ('".$_POST['comprobante']."', '".$_POST['ruc']."', '".$_POST['razon']."') ";
$res = mysql_query($que, $conexion) or die(mysql_error());
$state = true;
}
$conexion = mysql_connect("localhost", "mayito_luchito", "ninguna");
mysql_select_db("mayito_conta", $conexion);

$queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
?>
  #6 (permalink)  
Antiguo 02/04/2012, 12:41
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 139
Respuesta: repeticion de contenidos en insertar registros

Vamos a ver si te sirven estos cambios.
Código PHP:
Ver original
  1. $state = false;
  2.  
  3. $conexion = mysql_connect("localhost", "mayito_luchito", "ninguna");
  4. mysql_select_db("mayito_conta", $conexion);
  5.  
  6.  
  7. # Verifico si precionaste el boton para enviar el formulario
  8.  
  9. if ( (isset($_POST['Submit'])) && (!empty($_POST['Submit'])) ) {
  10.  
  11. $que = "INSERT INTO empresa (comprobante, ruc, razon) ";
  12. $que.= "VALUES ('".$_POST['comprobante']."', '".$_POST['ruc']."', '".$_POST['razon']."') ";
  13. $res = mysql_query($que, $conexion) or die(mysql_error());
  14. $state = true;
  15.  
  16. # Luego que termino de insertar todo los datos destruyo las variables , evitando asi que cuando refresque la pagina
  17. # se vuelva hacer un insert
  18.  
  19. unset($_POST );
  20.  
  21. }
  22.  
  23.  
  24.  
  25.  
  26. $queEmp = "SELECT * FROM empresa ORDER BY comprobante ASC";
  27. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  28. $totEmp = mysql_num_rows($resEmp);
  #7 (permalink)  
Antiguo 02/04/2012, 14:16
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
Respuesta: repeticion de contenidos en insertar registros

hola gjx2
me ha ayudado mucho tu correccion pero aun tengo problemas

1. ya no se visualizan los resultados en la web en orden alfabetico o por ingreso
2. cada vez que le doy clik en insertar registro se guarda el nombre de las cajas en la bd cuantas veces le haga click
3. cuando hago click en f5 se guarda en la bd el ultimo registro ingresado - se duplica y no deberia pasar eso
4. y por ejemplo cuando lleno las dos primeras cajas y le doy enter o insertar la tercera guarda el nombre de la caja y no deberia hacerlo

esto que me rompo la cabeza pero no obtengo soluciones
agradezco mucho tu tiempo :)
  #8 (permalink)  
Antiguo 02/04/2012, 14:40
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 139
Respuesta: repeticion de contenidos en insertar registros

Con esto resulves el problema del 2 al 4

Código PHP:
Ver original
  1. <?php
  2.  
  3. $state = false;
  4.  
  5. $conexion = mysql_connect("localhost", "mayito_luchito", "ninguna");
  6. mysql_select_db("mayito_conta", $conexion);
  7.  
  8. # Verifico si precionaste el boton para enviar el formulario
  9.  
  10. if ( (isset($_POST['Submit'])) && (!empty($_POST['Submit'])) ) {
  11.        
  12.     # Verifico que las variables no esten vacias y no contenga el texto por defecto de la caja 
  13.     if(comprobar($_POST['comprobante'],'Comprobante') && comprobar($_POST['ruc'],'RUC') && comprobar($_POST['razon'],'Razon Social')){
  14.                            
  15.         $que = "INSERT INTO empresa (comprobante, ruc, razon) ";
  16.         $que.= "VALUES ('".$_POST['comprobante']."', '".$_POST['ruc']."', '".$_POST['razon']."') ";
  17.         $res = mysql_query($que, $conexion) or die(mysql_error());
  18.         $state = true;
  19.        
  20.         # Luego que termino de insertar todo los datos destruyo las variables , evitando asi que cuando refresque la pagina
  21.         # se vuelva hacer un insert
  22.        
  23.         unset($_POST );
  24.        
  25.     }
  26.        
  27.  
  28. }
  29.  
  30. $queEmp = "SELECT * FROM empresa ORDER BY comprobante asc";
  31. $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  32. $totEmp = mysql_num_rows($resEmp);
  33.  
  34.  
  35. #Esta funcion verifica que la variable que postea no este vacia ni que su valor sea igual al default
  36. function comprobar( $var,$value ){
  37.  
  38.     if( (!empty($var)) && ($var != $value) ){
  39.         return true;   
  40.     }
  41. }
  #9 (permalink)  
Antiguo 02/04/2012, 16:46
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
Respuesta: repeticion de contenidos en insertar registros

testee y obtuve esto:
1. lleno dos primeras cajas, click en enter o en insertar registros y veo en la web lo ingresado mas el nombre de la tercera caja pero, nada grabado en la bd y deberia grabarse :(
2. cada vez que actualizo la web con f5 y actualizo mi bd se duplica el ultimo ingreso en mi bd pero cuando actualizo con enter desaparecen de la web los contenidos y no se repite nada en mi bd
3. y que deberia hacer para que se vea en la web un listado de todo lo ingresado? asi cmo existe un listado en mi bd


gracias...¡¡¡
  #10 (permalink)  
Antiguo 02/04/2012, 17:00
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 11 años, 4 meses
Puntos: 139
Respuesta: repeticion de contenidos en insertar registros

Pense que las caja no podian estar vacias
Reemplaza la funcion comprobar por esta.

Código PHP:
Ver original
  1. function comprobar(&$var,$value ){
  2.  
  3. if( !empty($var) ){
  4.            
  5.             if( $var == $value ){
  6.                 $var = " ";
  7.             }
  8.    
  9.  return true;
  10.  }
  11. }
  #11 (permalink)  
Antiguo 02/04/2012, 17:43
 
Fecha de Ingreso: abril-2011
Ubicación: Peru
Mensajes: 486
Antigüedad: 8 años, 8 meses
Puntos: 9
Respuesta: repeticion de contenidos en insertar registros

1. que deberia hacer para que en vez del nombre de la caja no llenada aparezca la palabra vacia?
2. sigue el problema del f5 :(
3. no lleno nada en las cajas pero si le doy click en inserta se llena vacio en mi bd
4. y que deberia hacer para que se vea en la web un listado de todo lo ingresado? asi cmo existe un listado en mi bd

gracias

Etiquetas: contenidos, mysql, registro, registros, repeticion, tabla
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 15:22.