Foros del Web » Programando para Internet » PHP »

Problema al insertar registros desde un formulario y php

Estas en el tema de Problema al insertar registros desde un formulario y php en el foro de PHP en Foros del Web. Bueno tengo un problema tonto que no consigo solucionar estoy intentando insertar registros en mi base de datos desde un formulario y no me los ...
  #1 (permalink)  
Antiguo 20/05/2012, 17:04
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Problema al insertar registros desde un formulario y php

Bueno tengo un problema tonto que no consigo solucionar estoy intentando insertar registros en mi base de datos desde un formulario y no me los inserta, antes de poner este post y con el fin de poder averiguar cual es el problema he creado una base de datos "prueba" y una tabla "venta" con 2 campos: uno se llama "Id" y es autoincrementable y el otro es un campo"Zona" tipo varchar.
He realizado un monton de pruebas y aunque los archivos no me dan ningún error no me inserta los datos en mi base
Os agradeceria me ayudarais ya que no veo el problema.
Este es mi formulario HTML
Código HTML:
Ver original
  1. <form name="Insert" method="POST" action="InsertarRegistros.php">
  2. <input name="Zona" type="text" size="20">
  3. <font color="#000000">Zona:</font>
  4. <input type="submit" name="cmdBuscar" id="cmdBuscar" value="ENVIAR">
  5. </form>
Y este es InsertarRegistros.php:
Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost', 'root', '');
  3. if (!$conexion) {
  4. die('Fallo la conexión a la Base de Datos: ' . mysql_error());
  5. }
  6. $seleccionar_bd = mysql_select_db('Prueba', $conexion);
  7. if (!$seleccionar_bd) {
  8. die('Fallo la selección de la Base de Datos: ' . mysql_error());
  9. }
  10. $Zona = $_POST['Zona'];
  11.  
  12. //Inserto los campos en la Base de Datos (No inserto el "Id" ya que se genera automaticamente)
  13. $insertar = mysql_query('INSERT INTO "venta" (Zona)
  14. VALUES (’{$Zona}’)', $conexion);
  15. if (!$insertar) {
  16. die('Fallo en la insercion de registro en la Base de Datos: ' . mysql_error());
  17. }
  18. mysql_close($conexion);
  19. ?>
Lo unico que ocurre es que al enviar me saca el insertarRegistros.php con todo el texto que tengo puesto como código pero no me da ningún error y no me inserta los registros.
Gracias a todos.
  #2 (permalink)  
Antiguo 20/05/2012, 17:21
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Problema al insertar registros desde un formulario y php

Hola.

Creo que el problema es por las comillas. Prueba colocando la consulta de esta manera:

Código PHP:
$insertar mysql_query("INSERT INTO venta (Zona) VALUES ('$Zona')"$conexion); 
Espero que sirva. Saludos.
  #3 (permalink)  
Antiguo 20/05/2012, 17:26
Avatar de HackGhost  
Fecha de Ingreso: marzo-2012
Ubicación: En la pesadilla de mis enemigos
Mensajes: 114
Antigüedad: 12 años, 1 mes
Puntos: 23
Respuesta: Problema al insertar registros desde un formulario y php

puede que tu servidor no este activado.. prueba haciendo un simple echo para ver si realmente esta siendo interpretado el php
  #4 (permalink)  
Antiguo 21/05/2012, 04:05
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema al insertar registros desde un formulario y php

Gracias a los dos, encontre el problema, estaba en mi cabeza, a veces la cabeza se tiene solo para llevar sombrero y eso es lo que me paso a mí, me ofusque y no veia el problema a pesar de ser yo quien lo hacia mal, no necesite a nadie para ser torpe me baste yo solito. ja ja.

RabidFish gracias por el tema de las comillas, aunque no me indicaba ningún error efectivamente estaban mal, a veces lás soluciones que se encuentrán en la red, cuando buscas algo para comparar y encontrar errores en el código, estan tambien mal.

HackGhost gracias a tí tambien porque aunque el problema no estaba ahi, eso me dio una idea y comprobe gracias a esa idea como nos podemos ofuscar haciendo una cosa mal cuando es algo que hemos hecho miles de veces bien.

El problema estaba al margen de las comillas en que yo ejecutaba el formulario.html desde el navegador y no desde el servidor local así que no podia insertarme los registros en mi tabla en la vida, como pude ser tan torpe, despues de meter la cabeza bajo el agua fria me di cuenta de que era lo que hacia mal.

Gracias de nuevo, Ah una cosa como puedo hacer que no me aparezca la página insertarRegistros.php ya que me aparece al enviar el formulario con un 1 en la parte superior izquierda.
  #5 (permalink)  
Antiguo 21/05/2012, 11:27
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Problema al insertar registros desde un formulario y php

Hola unexes.

Debería haber prestado más atención al final de tu post ("Lo unico que ocurre es que al enviar me saca el insertarRegistros.php con todo el texto que tengo puesto como código pero no me da ningún error y no me inserta los registros") para saber qué andaba mal.

En cuanto a tu nueva duda, depende de qué quieres que suceda cuando se ingresa un registro nuevo. Normalmente, al enviar un formulario se validan los campos y se muestra un error en caso de que algo esté mal o se muestra un mensaje de éxito si todo está bien.

Podrías dejar todo como está y agregar luego del INSERT algo así:
Código PHP:
echo 'Registro insertado con éxito.'
Otra cosa que se puede hacer si programas estructurado es que InsertarRegistros.php contenga todo el código que publicaste (tanto el formulario HTML como el código PHP) y se llame a sí mismo al pulsar en el botón.

InsertarRegistros.php
Código PHP:
<?php
    
if(isset($_POST['cmdBuscar']) { //Pregunto si se envió el formulario.
        
$conexion mysql_connect('localhost''root''');
        
        if (!
$conexion) {
            die(
'Fallo la conexión a la Base de Datos: ' mysql_error());
        }
        
        
$seleccionar_bd mysql_select_db('Prueba'$conexion);
        
        if (!
$seleccionar_bd) {
            die(
'Fallo la selección de la Base de Datos: ' mysql_error());
        }
        
        
$Zona $_POST['Zona'];
        
        
//Inserto los campos en la Base de Datos (No inserto el "Id" ya que se genera automaticamente)
        
$insertar mysql_query("INSERT INTO venta (Zona) VALUES ('$Zona')"$conexion);
        
        if (!
$insertar) {
            die(
'Fallo en la insercion de registro en la Base de Datos: ' mysql_error());
        } else {
            echo 
'<p style="color:#22b14c; font-weight:700; margin-bottom:10px; text-align:center;">Registro insertado con éxito.</p>';
        }
        
        
mysql_close($conexion);
    } else { 
//Si no se pulsó nunca el botón, muestro el formulario.
?>
<form name="Insert" method="POST" action="InsertarRegistros.php">
    <font color="#000000">Zona:</font> <input name="Zona" type="text" size="20">
    <input type="submit" name="cmdBuscar" id="cmdBuscar" value="ENVIAR">
</form>
<?php
    
}
?>
De esta forma podrías ampliar el código y validar el o los datos que se ingresan en el formulario. En caso de que haya errores, muestras un mensaje y el formulario permitiendo corregir los campos incorrectos. No probé el código, si no funciona sólo avisa.

Te sugiero que vayas averiguando sobre cómo crear una función para la conexión a la base de datos para no tener que escribir todo el código cada vez que lo requieras. También trata de evitar usar mayúsculas en los nombres de archivos (podría ser insertar_registros.php) y sería bueno que no uses etiquetas HTML (como <font>) para darle estilo a la página y uses CSS en su lugar. Son sólo recomendaciones que puedes ir aplicando con el tiempo en caso de que estés aprendiendo, pero sería ideal que lo tengas en cuenta desde el inicio .

Saludos.

Última edición por RabidFish; 21/05/2012 a las 11:51
  #6 (permalink)  
Antiguo 21/05/2012, 14:12
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema al insertar registros desde un formulario y php

RabidFish gracias de nuevo por tu inestimable ayuda la verdad es que estoy aprendiendo, hace menos de un año no tenia ni idea y ahora creo que hago cosas que ni yo mismo me creia lo que ocurre es que soy impaciente y me gustaria saber mas y mas rapido y logicamente se me ve el plumero.

Voy a probar tu código y si no funcionara, primero vere de solucionarlo solo y luego te dire donde me he quedado atascado, como ya ha empezado la semana dispongo de menos tiempo ya que por la noche cuando llego del trabajo mi cabeza no esta para distinguir comillas, me entiendes verdad.

Para conectarme con la base de datos, utilizo la siguiente instrucción en las páginas en las que preciso conectarme:
Cita:
require_once('Connections/Conexionlocal.php');
Lo que ocurre es que cuando busco por la red algún código para hacer algo que no se hacer y lo encuentro, no se como modificar dicho código para implementar esta instruccion dentro del mismo, me queda mucho por aprender. En el código que estamos en estos momentos tratando lo he dejado como segunda prioridad pero mas tarde o mas pronto lo tendre que modificar insertando dicha conexionlocal.php, para no tener que repetir el código, pero de momento me tengo que centrar en otros puntos del mismo, te pongo solo a titulo de información el contenido de conexionlocal.php:
Código PHP:
Ver original
  1. <?php
  2. $conexion = mysql_connect('localhost', 'root', '');
  3. mysql_select_db('prueba');
  4. ?>
En cuanto a lo usar solo minusculas ya lo hago lo que ocurre es que cuando pruebo algún código la mayusculas me ayudan a seguir mejor la pista y luego cuando todo funciona bien lo cambio a minusculas y depuro el código con CSS. para dejarlo mas limpio.

El código que puse aquí para encontrar el problema de la inserción de registros lo reduci al máximo para mas legibilidad, ahora debo encontrar la forma de validar los datos y cuando este funcionando tambien tendre que enviar imagenes a una carpeta del servidor y guardar la direccion en la base de datos pero cuando llegue a eso, ya espondre los problemas con los que me encuentre en dicho momento y intentare por supuesto primero solucionarlo por mi mismo y si no lo consigo acudire en vuestra ayuda

No se como agradeceros la ayuda que me prestais algunas personas, porque sobre todo me ayudais en lo mas hermoso para mi, que es, seguir aprendiendo. Te dire que tengo algunos añitos y mis neuronas ya no son tan agiles como antes pero he decidido vencerlas haciendoles que practiquen gimnasia mental todos los días.

Bueno en cuanto pruebe el código te dire algo, muchas gracias.

Última edición por unexes; 21/05/2012 a las 14:17
  #7 (permalink)  
Antiguo 21/05/2012, 14:49
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 15 años, 9 meses
Puntos: 26
Respuesta: Problema al insertar registros desde un formulario y php

Me alegro que te sea de ayuda, unexes . Y me parece bien que ya estés implemendando esas pequeñas mejoras desde el comienzo, hoy en día hay innumerables herramientas y métodos disponibles para hacer todo más organizado, rápido, simple, abstracto, mejor... El tema es estar al tanto de todo eso, ponerse al día.

Yo te remarcaba lo de la conexión sobre todo porque la mitad del código que publicaste es para eso, y puede dificultarte a ti mismo la tarea de encontrar el error. Si ya has probado la función para conectar y no tiene errores, entonces ya te olvidas de eso y te centras en los nuevos problemas. O, en caso de que tuviese un error, sólo lo corriges en el archivo donde está esa función y no en todos los demás archivos donde la utilizas.

Un saludo y seguimos en contacto.
  #8 (permalink)  
Antiguo 22/05/2012, 15:43
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 2 meses
Puntos: 7
Respuesta: Problema al insertar registros desde un formulario y php

RabidFish de nuevo aquí.

Bueno de momento ya he solucionado lo de la conexión con la base de datos de esta forma el código es mas claro y cuando tengo que cambiar la misma solo debo hacerlo en un lugar.

Tambien he eliminado como me aconsejaste todo el código relacionado con el stylo "<font></Font>" y lo he sustituido por una class de esa forma el código es mas limpio y tambien cuando deseo cambiar algo solo tengo que cambiar la class.

Ahora voy a meterme en cosas como enviar desde el mismo formulario una imagen a una carpeta de mi servidor y la direccion de la misma a un campo de mi base de datos y cuando lo consiga lo que hare sera redimensionarla para que ocupe menos espacio, pero eso sera en otro momento y si me quedo atascado pondre un nuevo post ya que se tratara de otro problema diferente y solicitare vuestra ayuda, pero primero lo voy a intentar por mi mismo.

Bueno RabidFish nos vemos por aquí en otro momento y muchisimas gracias.

Etiquetas: formulario, html, mysql, registro, registros, 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 02:19.