Foros del Web » Programando para Internet » PHP »

guardar formulario en bbdd

Estas en el tema de guardar formulario en bbdd en el foro de PHP en Foros del Web. Buenas! Estoy intentando crear un PHP en el que al darle al botón guardar se guarde la información en una base de datos. Es la ...
  #1 (permalink)  
Antiguo 01/08/2012, 04:58
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
guardar formulario en bbdd

Buenas!
Estoy intentando crear un PHP en el que al darle al botón guardar se guarde la información en una base de datos.
Es la primera vez que me aventuro a hacer un problemita así, de manera que voy un poco perdida en cuanto a solución de los errores que aparecen.
Si podéis echarle un vistazo, éste es el código.

La condición depende del campo codigo que dependiendo de si se introduce el código del cliente se crea uno nuevo o se modifica el existente.

Código HTML:
<div class="contenedor_contenidos">
    	<?php
		if($_REQUEST[codigo]=="-")
		{
			$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
			mysql_select_db("clientes",$conexion) or die("Problemas en la seleccion de la base de datos");
			mysql_query("insert into clientes(nombre,cif,direccion,codigo_postal,ciudad,telefono,fax,email,fecha_alta) values 
   ('$_REQUEST[nombre]','$_REQUEST[cif]','$_REQUEST[direccion]','$_REQUEST[cp]','$_REQUEST[ciudad]','$_REQUEST[telefono]','$_REQUEST[fax]','$_REQUEST[email]',date(d/m/y))", 
   $conexion) or die("Problemas en el select".mysql_error());
	mysql_close($conexion);
	echo "El cliente ha sido añadido.";
		}
		else
		{
			$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
			mysql_select_db("clientes",$conexion) or die("Problemas en la selección de la base de datos");
			$registros=mysql_query("select * from clientes where nombre='$_REQUEST[nombre]'",$conexion) or die("Problemas en el select:".mysql_error());
			if ($reg=mysql_fetch_array($registros))
			{
				$registros=mysql_query("update clientes set cif='$_REQUEST[mailnuevo]' where nombre='$_REQUEST[nombre]'",$conexion) or  die("Problemas en el select:".mysql_error());
  echo "El mail fue modificado con exito";
			}
			?>
   	  		
		  <div class="contenidos"><br/><br/><br/><form style="margin-left:200px;" method="post" action="guardar-cliente.php">
            	Código: <input type="text" name="codigo" size="20" value="-"> <span style="margin-left:190px;" >Núm. albaranes: <input type="text" name="num_albaranes" size="20" value="0"/></span>

  				<br/><br/><br/>
                <button type="submit">Nombre: </button> <input type="text" name="nombre" size="60"> <span style=" margin-left:10px;" >CIF: <input type="text" name="cif" size="20" /></span>
                <br/><br/><br/>
                Dirección: <input type="text" name="direccion" size="50" /><br/><br/>
                C.P.: <input type="text" name="cp" size="10" /> <span style="margin-left:10px;">Ciudad: <input type="text" name="ciudad" size="30" /></span>
                <br/><br/><br/>
                Teléfono: <input type="text" name="telefono" size="20" /> <span style="margin-left:20px;">Fax: <input type="text" name="fax" size="20" /></span><br/><br/>
                E-mail: <input type="text" name="email" size="55" />
                <br/><br/> <span style="margin-left:420px;">Fecha de alta: <input type="text" name="fecha_alta"  value="dd/mm/aa"/></span><br/><br/>

               
            <span style="margin-left:280px;"><button type="submit"><br/>Guardar<br/><br/></button>
            <button type="reset"><br/>  Borrar <br/><br/></button></span> 
                            
            </form></div> 
Muchas gracias!!!
  #2 (permalink)  
Antiguo 01/08/2012, 07:55
Avatar de NJS
NJS
 
Fecha de Ingreso: noviembre-2011
Mensajes: 371
Antigüedad: 12 años, 5 meses
Puntos: 28
Respuesta: guardar formulario en bbdd

No entiendo bien tu pregunta, no estas seguro de si se hace así o es que te da algún error?
__________________
Mejores empresas de Hosting
-=-=-=-=-=-=-=-
Empresas de Hosting
  #3 (permalink)  
Antiguo 01/08/2012, 09:26
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: guardar formulario en bbdd

Te recomendaria que crearas un archivo de conexion aparte y lo incluyeras al principio de cualquier archivo en donde realices consultas , en el codigo repites la conexion

Cita:
if($_REQUEST[codigo]=="-")
{
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
mysql_select_db("clientes",$conexion) or die("Problemas en la seleccion de la base de datos");
y
Cita:
else
{
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
mysql_select_db("clientes",$conexion) or die("Problemas en la selección de la base de datos");
en las variables del arreglo $_REQUEST que recibes debes definirlas entre comillas simples o dobles y concatenar con puntos dichas variables

tu defines
Cita:
$registros=mysql_query("update clientes set cif='$_REQUEST[mailnuevo]' where nombre='$_REQUEST[nombre]'",$conexion) or die("Problemas en el select:".mysql_error());
ejemplo
Cita:
$registros=mysql_query("update clientes set cif='".$_REQUEST['mailnuevo']."' where nombre='".$_REQUEST['nombre']."'",$conexion) or die("Problemas en el select:".mysql_error());
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #4 (permalink)  
Antiguo 01/08/2012, 10:22
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
Respuesta: guardar formulario en bbdd

Muchas gracias.
Ya he modificado las partes del código que me comentabas. De todos modos, el error que da es en la siguiente linea:
Código HTML:
<span style="margin-left:280px;"><button type="submit"><br/>Guardar<br/><br/></button>
 <button type="reset"><br/>  Borrar <br/><br/></button></span> 
No entiendo por que. De momento el código queda así:
Código HTML:
<div class="contenedor_contenidos">
    	<?php
			$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
			mysql_select_db("clientes",$conexion) or die("Problemas en la seleccion de la base de datos");
		if($_REQUEST[codigo]=="-")
		{
			mysql_query("insert into clientes(nombre,cif,direccion,codigo_postal,ciudad,telefono,fax,email,fecha_alta) values 
   (".$_REQUEST['nombre'].",".$_REQUEST['cif'].",".$_REQUEST['direccion'].",".$_REQUEST['cp'].",".$_REQUEST['ciudad'].",".$_REQUEST['telefono'].",".$_REQUEST['fax'].",".$_REQUEST['email'].",date(d/m/y))", 
   $conexion) or die("Problemas en el select".mysql_error());
	mysql_close($conexion);
	echo "El cliente ha sido añadido.";
		}
		else
		{
			$registros=mysql_query("select * from clientes where nombre='$_REQUEST[nombre]'",$conexion) or die("Problemas en el select:".mysql_error());
			if ($reg=mysql_fetch_array($registros))
			{
				$registros=mysql_query("update clientes set cif=".$_REQUEST['mailnuevo']." where nombre=".$_REQUEST['nombre']."",$conexion) or  die("Problemas en el select:".mysql_error());
  echo "El mail fue modificado con exito";
			}
			?>
   	  		
		  <div class="contenidos"><br/><br/><br/><form style="margin-left:200px;" method="post" action="guardar-cliente.php">
            	Código: <input type="text" name="codigo" size="20" value="-"> <span style="margin-left:190px;" >Núm. albaranes: <input type="text" name="num_albaranes" size="20" value="0"/></span>

  				<br/><br/><br/>
                <button type="submit">Nombre: </button> <input type="text" name="nombre" size="60"> <span style=" margin-left:10px;" >CIF: <input type="text" name="cif" size="20" /></span>
                <br/><br/><br/>
                Dirección: <input type="text" name="direccion" size="50" /><br/><br/>
                C.P.: <input type="text" name="cp" size="10" /> <span style="margin-left:10px;">Ciudad: <input type="text" name="ciudad" size="30" /></span>
                <br/><br/><br/>
                Teléfono: <input type="text" name="telefono" size="20" /> <span style="margin-left:20px;">Fax: <input type="text" name="fax" size="20" /></span><br/><br/>
                E-mail: <input type="text" name="email" size="55" />
                <br/><br/> <span style="margin-left:420px;">Fecha de alta: <input type="text" name="fecha_alta"  value="dd/mm/aa"/></span><br/><br/>

               
            <span style="margin-left:280px;"><button type="submit"><br/>Guardar<br/><br/></button>
            <button type="reset"><br/>  Borrar <br/><br/></button></span> 
                            
            </form></div> 
Por qué creeis que puede ser ese error? Muchas gracias!
  #5 (permalink)  
Antiguo 01/08/2012, 12:46
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: guardar formulario en bbdd

que error te muestra?

por cierto por que colocar un boton tipo subtmi de nombre?

nota : acomoda tu codigo para poder entenderlo
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #6 (permalink)  
Antiguo 02/08/2012, 03:31
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
Respuesta: guardar formulario en bbdd

Me dice que hay un error de sintaxis:
Parse error: syntax error, unexpected $end in C:\wamp\www\guardar-cliente.php on line 105

He intentado poner comentarios al texto, a ver si ahora está más claro lo que quiero hacer. De todos modos, la parte de modificar el usuario está a medio hacer porque hasta que no funcione la de crear uno nuevo tampoco puedo modificarlo...

Ahí va el código:
Código HTML:
<div class="contenedor_contenidos">
    	<?php
			//crea conexión con la bbdd
			$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
			mysql_select_db("clientes",$conexion) or die("Problemas en la seleccion de la base de datos");
		if($_REQUEST[codigo]=="-")
		{
			//si no hemos definido el código, creamos cliente nuevo
			//insertamos los parámetros del nuevo cliente en la tabla
			mysql_query("insert into clientes(nombre,cif,direccion,codigo_postal,ciudad,telefono,fax,email,fecha_alta) values 
   (".$_REQUEST[nombre].",".$_REQUEST[cif].",".$_REQUEST[direccion].",".$_REQUEST[cp].",".$_REQUEST[ciudad].",".$_REQUEST[telefono].",".$_REQUEST[fax].",".$_REQUEST[email].",date(d/m/y))", 
   $conexion) or die("Problemas en el select".mysql_error());
	mysql_close($conexion);
	echo "El cliente ha sido añadido.";
		}
		else
		{
			//si definimos el código, modificamos cliente existente
			//seleccionamos el cliente con el codigo correspondiente
			$registros=mysql_query("select * from clientes where id=".$_REQUEST['codigo']."",$conexion) or die("Problemas en el select:".mysql_error());
			if ($reg=mysql_fetch_array($registros))
			{
				//modificamos los diferentes campos de la tabla...como se haría el update??
				//$registros=mysql_query("update clientes set cif=".$_REQUEST[mailnuevo]." where nombre=".$_REQUEST[nombre]."",$conexion) or  die("Problemas en el select:".mysql_error());
  				echo "El mail fue modificado con exito";
			}
			?>
   	  		
		  <div class="contenidos">
          <br/><br/><br/>
          <!--formulario para introducir los datos del cliente-->
          <form style="margin-left:200px;" method="post" action="guardar-cliente.php">
            	Código: <input type="text" name="codigo" size="20" value="-"> <span style="margin-left:190px;" >Núm. albaranes: <input type="text" name="num_albaranes" size="20" value="0"/></span>

  				<br/><br/><br/>
                <button type="submit">Nombre: </button> <input type="text" name="nombre" size="60"> <span style=" margin-left:10px;" >CIF: <input type="text" name="cif" size="20" /></span>
                <br/><br/><br/>
                Dirección: <input type="text" name="direccion" size="50" /><br/><br/>
                C.P.: <input type="text" name="cp" size="10" /> <span style="margin-left:10px;">Ciudad: <input type="text" name="ciudad" size="30" /></span>
                <br/><br/><br/>
                Teléfono: <input type="text" name="telefono" size="20" /> <span style="margin-left:20px;">Fax: <input type="text" name="fax" size="20" /></span><br/><br/>
                E-mail: <input type="text" name="email" size="55" />
                <br/><br/> <span style="margin-left:420px;">Fecha de alta: <input type="text" name="fecha_alta"  value="dd/mm/aa"/></span><br/><br/>

               
            <span style="margin-left:280px;"><button type="submit"><br/>Guardar<br/><br/></button>
            <button type="reset"><br/>  Borrar <br/><br/></button></span> 
                            
            </form></div> 
Lo que preguntas del submit...tenía entendido que para que se ejecute el php es el botón que hay que utilizar. No es así?

Muchas gracias!!
  #7 (permalink)  
Antiguo 02/08/2012, 03:36
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: guardar formulario en bbdd

Código PHP:
else
        {
            
//si definimos el código, modificamos cliente existente
            //seleccionamos el cliente con el codigo correspondiente
            
$registros=mysql_query("select * from clientes where id=".$_REQUEST['codigo']."",$conexion) or die("Problemas en el select:".mysql_error());
            if (
$reg=mysql_fetch_array($registros))
            {
                
//modificamos los diferentes campos de la tabla...como se haría el update??
                //$registros=mysql_query("update clientes set cif=".$_REQUEST[mailnuevo]." where nombre=".$_REQUEST[nombre]."",$conexion) or  die("Problemas en el select:".mysql_error());
                  
echo "El mail fue modificado con exito";
            }
            
?> 
¿Dónde cierras ese else? ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #8 (permalink)  
Antiguo 02/08/2012, 03:53
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
Respuesta: guardar formulario en bbdd

Vaya..era eso..Muchas gracias Eleazan!!
Ahora ya no me da errores, pero al ejecutarlo no se ha guardado. Además, la intención es que al dar a guardar se vuelva a cargar la misma página, con los nuevos valores.
En cambio en mi caso al dar a guardar ha aparecido la página en blanco.
Vuelvo a pegar el código:

Código HTML:
Ver original
  1. <div class="contenedor_contenidos">
  2.         <?php
  3.             //crea conexión con la bbdd
  4.             $conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");
  5.             mysql_select_db("clientes",$conexion) or die("Problemas en la seleccion de la base de datos");
  6.         if($_REQUEST['codigo']=="-")
  7.         {
  8.             //si no hemos definido el código, creamos cliente nuevo
  9.             //insertamos los parámetros del nuevo cliente en la tabla
  10.             mysql_query("insert into clientes(nombre,cif,direccion,codigo_postal,ciudad,telefono,fax,email,fecha_alta) values
  11.   (".$_REQUEST['nombre'].",".$_REQUEST['cif'].",".$_REQUEST['direccion'].",".$_REQUEST['cp'].",".$_REQUEST['ciudad'].",".$_REQUEST['telefono'].",".$_REQUEST['fax'].",".$_REQUEST['email'].",date(d/m/y))",
  12.   $conexion) or die("Problemas en el select".mysql_error());
  13.     mysql_close($conexion);
  14.     echo "El cliente ha sido añadido.";
  15.         }
  16.         else
  17.         {
  18.             //si definimos el código, modificamos cliente existente
  19.             //seleccionamos el cliente con el codigo correspondiente
  20.             //$registros=mysql_query("select * from clientes where id=".$_REQUEST['codigo']."",$conexion) or die("Problemas en el select:".mysql_error());
  21.             if ($reg=mysql_fetch_array($registros))
  22.             {
  23.                 //modificamos los diferentes campos de la tabla...como se haría el update??
  24.                 //$registros=mysql_query("update clientes set cif=".$_REQUEST[mailnuevo]." where nombre=".$_REQUEST[nombre]."",$conexion) or  die("Problemas en el select:".mysql_error());
  25.                 echo "El mail fue modificado con exito";
  26.             }
  27.         }
  28.             ?>
  29.            
  30.           <div class="contenidos">
  31.           <br/><br/><br/>
  32.           <!--formulario para introducir los datos del cliente-->
  33.           <form style="margin-left:200px;" method="post" action="guardar-cliente.php">
  34.                 Código: <input type="text" name="codigo" size="20" value="-"> <span style="margin-left:190px;" >Núm. albaranes: <input type="text" name="num_albaranes" size="20" value="0"/></span>
  35.  
  36.                 <br/><br/><br/>
  37.                 <button type="submit">Nombre: </button>  <input type="text" name="nombre" size="60"> <span style=" margin-left:10px;" >CIF: <input type="text" name="cif" size="20" /></span>
  38.                 <br/><br/><br/>
  39.                 Dirección: <input type="text" name="direccion" size="50" /><br/><br/>
  40.                 C.P.: <input type="text" name="cp" size="10" /> <span style="margin-left:10px;">Ciudad: <input type="text" name="ciudad" size="30" /></span>
  41.                 <br/><br/><br/>
  42.                 Teléfono: <input type="text" name="telefono" size="20" /> <span style="margin-left:20px;">Fax: <input type="text" name="fax" size="20" /></span><br/><br/>
  43.                 E-mail: <input type="text" name="email" size="55" />
  44.                 <br/><br/>                <span style="margin-left:420px;">Fecha de alta: <input type="text" name="fecha_alta"  value="dd/mm/aa"/></span><br/><br/>
  45.  
  46.                
  47.             <span style="margin-left:280px;"><button type="submit"><br/>Guardar<br/><br/></button>
  48.             <button type="reset"><br/>  Borrar <br/><br/></button></span>
  49.                            
  50.             </form></div>
  #9 (permalink)  
Antiguo 02/08/2012, 08:00
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: guardar formulario en bbdd

el boton que te comentaba es uno que dice nombre.

solo necesitas un boton submit dentro del form (que ya lo tienes) para almacenar tu informacion

en tu formulario en el action debes colocar # para que se realice el submit a la mima pagina

<form style="margin-left:200px;" method="post" action="guardar-cliente.php">

<form style="margin-left:200px;" method="post" action="#">
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #10 (permalink)  
Antiguo 06/08/2012, 04:56
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
Respuesta: guardar formulario en bbdd

Lo del boton nombre es porque mi intención es que al dar a ese botón se abra una nueva ventana con los diferentes "clientes" para buscar a uno y que se autorellene el campo nombre al encontrarlo. De momento no se como hacerlo, así que sigue ahí en stand-by.
En action al poner # me vuelve a aparecer la misma página sin los campos rellenados, creo que más que un submit a la misma página, hace un reset porque además no salen los datos guardados en la bbdd.

De todos modos, si pongo action="guardar-cliente.php" tampoco consigo lo que quiero porque no se me guardan los datos y no vuelve a la misma página sino que queda en blanco. Cómo puedo solucionar esto?

Muchas gracias!!!
  #11 (permalink)  
Antiguo 06/08/2012, 08:24
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: guardar formulario en bbdd

en la pagina donde recibes los campos escribe

print_r($_REQUEST);

te devolvera los campos recibidos en la pagina
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #12 (permalink)  
Antiguo 06/08/2012, 09:22
 
Fecha de Ingreso: marzo-2012
Mensajes: 24
Antigüedad: 12 años
Puntos: 0
Respuesta: guardar formulario en bbdd

Sigue sin mostrarse nada y además no se guarda en la bbdd.
Se incluye en el código así?

Nombre: <input type="text" name="nombre" size="20" /><?php print_r($_REQUEST['nombre']); ?></span>

Etiquetas: bbdd, formulario, mysql, registro, 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 21:15.