Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problemas con un formulario que no ingresa valores en mi base de datos

Estas en el tema de Problemas con un formulario que no ingresa valores en mi base de datos en el foro de PHP en Foros del Web. Buenas noches a todos, Llevo todo el día haciendo unos formularios para practicar y no he tenido ningún problema hasta ahora. Resulta que después de ...
  #1 (permalink)  
Antiguo 24/08/2013, 14:12
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Exclamación Problemas con un formulario que no ingresa valores en mi base de datos

Buenas noches a todos,

Llevo todo el día haciendo unos formularios para practicar y no he tenido ningún problema hasta ahora. Resulta que después de rellenar el formulario y darle a enviar no solo no se guardan los valores sino que tampoco me da ningún mensaje de error.

¿Alguna idea? Os muestro el código por si veis algo que a mí se me haya escapado.



el formulario es: form_set.php
Código PHP:
Ver original
  1. <?php
  2.     include("conexio.php");
  3.     $rst_categories=mysql_query("SELECT * FROM pua;",$con);
  4.     $rst_categories8=mysql_query("SELECT * FROM report;",$con);
  5.                
  6. ?>
  7. <html>
  8.     <head>
  9.         <title>Informe</title>
  10.     </head>
  11. <body>
  12.     <form action="set_registrat.php" method=post name="formulari">
  13.         Nombre: <select name="categoria_pua">
  14.         <option value=""></option">
  15.         <?php
  16.        
  17.         while ($fila=mysql_fetch_array($rst_categories))
  18.         {
  19.             echo "<option value='". $fila["idpua"] ."'>".$fila["pua_nom"] ."</option>";
  20.         }
  21.         mysql_close($con)
  22.         ?>
  23.         </select><br>
  24.         Nom del Report: <select name="categoria_report">
  25.         <option value=""></option">
  26.         <?php
  27.        
  28.         while ($fila8=mysql_fetch_array($rst_categories8))
  29.         {
  30.             echo "<option value='". $fila8["idreport"] ."'>".$fila8["report_nomreport"] ."</option>";
  31.         }
  32.         mysql_close($con)
  33.         ?>
  34.         </select><br>
  35.         Sede: <input type=text name="nombre_7"></input><br>
  36.         HQ: <input type=text name="hq_7"></input><br>
  37.         Edad:  <input type=number name="edat_7"></input><br>
  38.         Tiempo Obertura: <input type=number name="obertura_7"></input><br>
  39.         Tiempo Anclatge:<input type=number name="anclatge_7"></input><br>
  40.         Tiempo Traccion:<input type=number name="traccio_7"></input><br>
  41.         Tiempo Aislar:<input type=number name="aillar_7"></input><br>
  42.         Tiempo Comfort Zone:<input type=number name="comfort_7"></input><br>
  43.         Tiempo Cierre:<input type=number name="close_7"></input><br>
  44.         Observacions:<input type=text name="observ_7"></input><br>
  45.         <input type="submit" name="boto_guardar" value="Guardar">
  46.     </form>
  47.  
  48. </body>
  49. <footer>
  50. </footer>
  51.  
  52. </html>

Y aqui el otro archivo:

Código PHP:
Ver original
  1. <?php
  2.     include("conexio.php");
  3.    
  4. ?>
  5. <?php
  6.    
  7.     if (isset($_POST['categoria_pua']) && !empty($_POST['categoria_pua']))
  8.    
  9.     {
  10.        
  11.         $name_prota = $_POST['categoria_pua'];
  12.            
  13.         $name_informe = $_POST['categoria_report'];
  14.                
  15.         $n_7 = $_POST['nombre_7'];
  16.                
  17.         $hq_7 = $_POST['hq_7'];
  18.                
  19.         $edat_7 = $_POST['edat_7'];
  20.                
  21.         $open = $_POST['obertura_7'];
  22.        
  23.         $hook = $_POST['anclatge_7'];
  24.                
  25.         $traction = $_POST['traccio_7'];
  26.                
  27.         $isolate = $_POST['aillar_7'];
  28.                
  29.         $comfort = $_POST['comfort_7'];
  30.                
  31.         $close = $_POST['close_7'];
  32.                
  33.         $total_sede = $open+$hook+$traction+$isolate+$comfort+$close;
  34.        
  35.         $obs_7 = $_POST['observ_7'];
  36.                
  37.         mysql_query("INSERT INTO set(set_tipus,set_hb,set_edat,set_obertura,set_anclatge,set_traccio,set_aillar,set_comfort,set_close,set_scoregame,pua_idpua,report_idreport,set_observacio) values ('$n_7','$hb_7','$edat_7','$open','$hook','$traction','$isolate','$comfort','$close','$total_sede','$name_prota','$name_informe','$obs_7')");
  38.        
  39.         echo "Info empresa guardada. <br>";
  40.         echo "<a href='form_set.php'> Ingressar mas info </a><br>";
  41.         echo "<a href='menu.php'> Volver al menu<br> </a>";
  42.     }
  43.     else
  44.     {
  45.         echo "Tienes que escribir alguo.";
  46.     }
  47. ?>


Por si sirve de ayuda, este es el único formulario donde hago una operación matemática.

Muchas gracias por vuestro tiempo.
  #2 (permalink)  
Antiguo 24/08/2013, 14:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas con un formulario que no ingresa valores en mi base de datos

Cita:
INSERT INTO set(
¿Y has advertido que "SET" es una palabra reservada en todos los DBMS?


Todo lenguaje, incluyendo un de consultas como es el SQL, tiene palabras reservadas, que no deben ser usadas jamás como nombres de objetos creados en su ambiente.
Nunca.

En tu caso lo estás usando una cláusula de dos sentencias distintas, como nombre de una tabla...

Por otro lado, las buenas prácticas en programación indican que toda acción que pueda disparar un error, debe tener su control de errores, donde se capturen los mensajes del sistema correspondientes (en este caso, los devueltos por MySQL).
DE lo contrario, es imposible saber dónde y por qué se produjo el problema...

¿Pusiste una captura de errores?

No. No pusiste ninguna.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/08/2013, 03:22
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Problemas con un formulario que no ingresa valores en mi base de datos

Primero de todo permíteme disculparme, estaba tan obsesionado en posibles errores que me olvide de lo básico. Efectivamente, estaba utilizando SET y no me di cuenta. Pero muchísimas gracias por darme un toque jejeje.

¿Lo que me comentas de controlar los errores, bastaría con un or die() ? Por ejemplo:


Código PHP:
Ver original
  1. mysql_query("INSERT INTO grupo(set_tipus,set_hb,set_edat,set_obertura,set_anclatge,set_traccio,set_aillar,set_comfort,set_close,set_scoregame,pua_idpua,report_idreport,set_observacio) values ('$n_7','$hb_7','$edat_7','$open','$hook','$traction','$isolate','$comfort','$close','$total_sede','$name_prota','$name_informe','$obs_7')") or die("No se han añadido registros");

¿O sería mejor utilizar otro recurso?

¡Otra vez, muchas gracias por tu comentario! :D
  #4 (permalink)  
Antiguo 25/08/2013, 05:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Problemas con un formulario que no ingresa valores en mi base de datos

En realidad, como método de captura de errores lo que estás haciendo es simple (demasiado para mi gusto), pero al menos es efectivo.

Pero lo que no es efectivo es que muestres ese mensaje, porque eso sólo nos dice que ha ocurrido un error, pero no dice qué error es el que se produjo.

Todos los lenguajes, y todos los sistemas, incluidos los de BBDD, tienen clasificados y codificados los errores que pueden suceder (hasta los errores "inclasificables"), y cuando un DBMS detecta algún error devuelve dos cosas: 1) Un numero de error, 2) un mensaje de error.
Aprovecha eso, y haz que el "or die()", te muestre ambas cosas.
Eso es lo que se hace.

http://www.php.net/manual/es/function.mysql-errno.php
http://www.php.net/manual/es/function.mysql-error.php

PD: La librería MYSQL de PHP es obsoleta y pronto se discontinuará. Por lo menos deberías migrar a MYSQLI, si no quieres usar PDO.

http://www.php.net/manual/es/mysqli.errno.php
http://www.php.net/manual/es/mysqli.error.php
http://www.php.net/manual/es/mysqli.errno.php
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 25/08/2013, 06:03
Avatar de sven_uri  
Fecha de Ingreso: mayo-2011
Mensajes: 109
Antigüedad: 12 años, 11 meses
Puntos: 4
Respuesta: Problemas con un formulario que no ingresa valores en mi base de datos

Perfecto, muchas gracias gnzsoloyo!

Todo me ha resultado muy útil. Ahora toca estudiar más jeje :).

Etiquetas: formulario, html, mysql, select, sql
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 20:26.