Foros del Web » Programando para Internet » PHP »

Agregar cliente a la base de datos mediante php

Estas en el tema de Agregar cliente a la base de datos mediante php en el foro de PHP en Foros del Web. Buenas! Queria hacer una consulta simple. Quiero armar un sitio que servira para almacenar informacion en una base de datos... En dicho sitio habria un ...
  #1 (permalink)  
Antiguo 10/09/2014, 07:03
Avatar de nicoruiztucuman  
Fecha de Ingreso: septiembre-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 0
Pregunta Agregar cliente a la base de datos mediante php

Buenas! Queria hacer una consulta simple.

Quiero armar un sitio que servira para almacenar informacion en una base de datos...
En dicho sitio habria un formulario el cual llenaria y los datos de cada input se guardarian en la db...

Ahora bien, tengo la db creada con las tablas, todo genial... tengo el index creado con el diseño (super basico) y los forms listos... lo unico que no se como hacer es vincular el index con la base para que se guarden los datos... tengo lo siguiente:


index.php:
Código:
<html>
    <head>
        <title>Registrar nuevo cliente</title>

<style>
		*{
			font-size: 14px;
			font-family: sans-serif;
		}
		form.registro{
		    background: none repeat scroll 0 0 #F1F1F1;
		    border: 1px solid #DDDDDD;
		    margin: 0 auto;
		    padding: 20px;
		    width: 278px;
		}
		form.registro div {
		    margin-bottom: 15px;
		    overflow: hidden;
		}
		form.registro div label {
		    display: block;
		    float: left;
		    line-height: 25px;
		}
		form.registro div input[type="text"], form.registro div input[type="password"] {
		    border: 1px solid #DCDCDC;
		    float: right;
		    padding: 4px;
		}
		form.registro div input[type="submit"] {
		    background: none repeat scroll 0 0 #DEDEDE;
		    border: 1px solid #C6C6C6;
		    float: right;
		    font-weight: bold;
		    padding: 4px 20px;
		}
		.error{
			color: red;
		    font-weight: bold;
		    margin: 10px;
		    text-align: center;
		}
</style>



    </head>
    <body>

<center><h1>Registrar nuevo cliente</h1></center>

<form action="" method="post" class="registro">
<div><label>Nombre y Apellido:</label>
<input type="text" name="nombre"></div>

<div><label>Documento:</label>
<input type="text" name="dni"></div>

<div><label>Fecha de Nacimiento:</label>
<input type="text" name="fecha"></div>

<div><label>Facebook:</label>
<input type="text" name="fb"></div>

<div><label>Celular:</label>
<input type="text" name="cel"></div>


<input type="submit" name="enviar" value="Registrar"></div>
</form>
	</body>
</html>
Seria genial si pudieran ayudarme, estuve leyendo que tengo que crear un archivo "conexion.php" pero no se que poner en el...

Desde ya muchas gracias a todos y espero que puedan ayudarme :)
  #2 (permalink)  
Antiguo 10/09/2014, 08:19
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

La verdad estás recién empezando. La recomendación principal es que te documentes antes desde cero.

Te puedo ayudar pegando alguna información básica para hacer lo que buscas, pero está incompleta. Te sirve para empezar a entender.

Suponemos que tu base de datos es MySql.

Primera parte.
En la misma carpeta donde está index.html crea un archivo "conexion.php". Ojo, esto no es obligatorio ni mucho menos, es sólo para seguir con lo que pides, se puede hacer de cualquier otra forma. Luego pega el siguiente código en el archivo creado (el ejemplo lo saqué googleando, está lleno de cosas parecidas):

conexion.php

Código PHP:
Ver original
  1. <?php
  2.     function crearConexion(){
  3.         $servidor   = “localhost”;
  4.         $nombreBD   = “prueba”;
  5.         $usuario    = “root”;
  6.         $contrasena = “”;
  7.         $conexion = new mysqli($servidor,$usuario,$contrasena,$nombreBD);
  8.         if($conexion->connect_error){
  9.             die(“Error en la conexion :.$conexion->connect_errno.
  10.                                       “-.$conexion->connect_error);
  11.         }
  12.         return $conexion;
  13.     }
  14. ?>

El texto pegado lo tienes que editar con tu información de acceso a la base de datos. Esta información la debes conocer. Por ejemplo:

Código PHP:
Ver original
  1. $servidor   = “localhost”;
  2. $nombreBD   = “LaBaseDatosDeNicoRuiz”;
  3. $usuario    = “nicoruiztucuman”;
  4. $contrasena = “abc123”;

Luego grabas. Cada vez que en otra parte de tu programa quieras ir a la base de datos tienes que cargar este archivo con la sentencia include "conexion.php;", más adelante te muestro.
  #3 (permalink)  
Antiguo 10/09/2014, 08:30
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

Segunda Parte.

Vamos al archivo index.html que ya tienes casi listo.
Busca esta línea:
Código HTML:
Ver original
  1. <form action="" method="post" class="registro">

Edítala y que quede así:

Código HTML:
Ver original
  1. <form action="registrar.php" method="post" class="registro">

Esto significa que cuando se envíe el formulario haciendo click en el botón "Registrar", se va a ejecutar el código que existe en el archivo "registrar.php".

Entonces en la misma carpeta crea el archivo "registrar.php" y pega el siguiente código:

Código HTML:
Ver original
  1. <?php
  2. /*  aquí va a ir el código necesario para insertar el cliente  */
  3.  
  4. ?>
  5.  
  6.     <head>
  7.         <title>Registro completado</title>
  8.     </head>
  9.     <body>
  10.           <div>Se registró el cliente OK</div>
  11.           <a href="index.html">Volver a index.html</a>
  12.     </body>
  13. </html>

Esto, por supuesto, es sólo un bosquejo.
  #4 (permalink)  
Antiguo 10/09/2014, 08:54
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

Tercera Parte.

En el archivo "registrar.php" hay que editar el código php para que se guarden los datos. Vamos a escribir código de programación donde dice "/* aquí va a ir el código necesario para insertar el cliente */".

Primero hay que avisar a php que tiene que leer el archivo "conexion.php" para que se pueda acceder a la base de datos. Queda así:

Código PHP:
Ver original
  1. <?php
  2. /*  aquí va a ir el código necesario para insertar el cliente  */
  3. include "conexion.php";
  4. ?>

Luego, "recibes" los valores que "viajaron" al enviar el formulario y los almacenas en variables, quedando así:

Código PHP:
Ver original
  1. <?php
  2. /*  aquí va a ir el código necesario para insertar el cliente  */
  3. include "conexion.php";
  4.  
  5. $nombre=$_POST['nombre'];
  6. $facebook=$_POST['fb'];
  7. ?>

Ahora que tienes los datos, creas el código mysql para la base de datos, se hace más o menos así:

Código PHP:
Ver original
  1. $codigo_para_insertar="INSERT INTO tabla_clientes(nombre,facebook) VALUES('$nombre','$facebook')";

Lo anterior es la parte más sensible del código y tienes que leer documentación para que funcione correctamente y con seguridad.
Y ejecutas el código mysql con la función query(), quedando todo así:

Código PHP:
Ver original
  1. <?php
  2. /*  aquí va a ir el código necesario para insertar el cliente  */
  3. include "conexion.php";
  4.  
  5. $nombre=$_POST['nombre'];
  6. $facebook=$_POST['fb'];
  7.  
  8. $codigo_para_insertar="INSERT INTO tabla_clientes(nombre,facebook) VALUES('$nombre','$facebook')";
  9.  
  10. $db->query($codigo_para_insertar);
  11. $db->close();
  12. ?>
La función close() del final sirve para desconectar la base de datos, es obligatoria.

Insisto, esto probablemente te va a funcionar, pero está incompleto e inseguro. Tienes validar los datos que recibes y los que guardas. Pero te sirve para empezar.
  #5 (permalink)  
Antiguo 10/09/2014, 10:15
Avatar de nicoruiztucuman  
Fecha de Ingreso: septiembre-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agregar cliente a la base de datos mediante php

Genial amigo muchas gracias, pero te comento que me esta largando error con el archivo de conexion:
Código PHP:
Ver original
  1. <?php
  2.     function crearConexion(){
  3.         $servidor   = 'host';
  4.         $nombreBD   = 'db';
  5.         $usuario    = 'dbuser';
  6.         $contrasena = 'pass';
  7.         $conexion = new mysqli($servidor,$usuario,$contrasena,$nombreBD);
  8.         if($conexion->connect_error){
  9.             die('Error en la conexion : '.$conexion->connect_errno. }
  10.                                       &#8220;-“.$conexion->connect_error.
  11.        }
  12.         return $conexion;
  13.     }
  14. ?>

Obvio los datos de acceso estan bien puestos en mi archivo... el error que me da es el siguiente

Código:
Parse error: syntax error, unexpected '}' in /home/a6125600/public_html/conexion.php on line 9
Muchas gracias por responder
  #6 (permalink)  
Antiguo 10/09/2014, 18:07
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

Sin el salto de línea:

Código PHP:
Ver original
  1. <?php
  2.     function crearConexion(){
  3.         $servidor   = "localhost";
  4.         $nombreBD   = "prueba";
  5.         $usuario    = "root";
  6.         $contrasena = "";
  7.         $conexion = new mysqli($servidor,$usuario,$contrasena,$nombreBD);
  8.         if($conexion->connect_error){
  9.             die("Error en la conexion : ".$conexion->connect_errno."-".$conexion->connect_error);
  10.         }
  11.         return $conexion;
  12.     }
  13. ?>

Ojo que me faltó una línea en el último código. El archivo "registrar.php" quedaría así completo:
Código PHP:
Ver original
  1. <?php
  2. include "conexion.php";
  3.  
  4. $nombre=$_POST['nombre'];
  5. $facebook=$_POST['fb'];
  6.  
  7. $codigo_para_insertar="INSERT INTO tabla_clientes(nombre,facebook) VALUES('$nombre','$facebook')";
  8.  
  9. $db=crearConexion();    //esta línea me faltó antes
  10. $db->query($codigo_para_insertar);
  11. $db->close();
  12. ?>
  13.  
  14. <html>
  15.     <head>
  16.         <title>Registro completado</title>
  17.     </head>
  18.     <body>
  19.           <div>Se registró el cliente OK</div>
  20.           <a href="index.html">Volver a index.html</a>
  21.     </body>
  22. </html>
  #7 (permalink)  
Antiguo 11/09/2014, 13:23
Avatar de nicoruiztucuman  
Fecha de Ingreso: septiembre-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agregar cliente a la base de datos mediante php

Genial, llega al paso de que el registro fue correcto, pero cuando voy a ver la base no se guardo ningun dato :° Que puede ser??
  #8 (permalink)  
Antiguo 11/09/2014, 15:51
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

¿No mostro ningún error?

Pon:

Código PHP:
Ver original
  1. echo($codigo_para insertar);

abajo de $db->close(), y luego grabas y vuelves a ejecutar, para ver qué le estamos enviando a mysql.
Nos cuentas que sale en la pantalla antes de "Se registró el cliente".
  #9 (permalink)  
Antiguo 11/09/2014, 16:54
Avatar de nicoruiztucuman  
Fecha de Ingreso: septiembre-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agregar cliente a la base de datos mediante php

Este es el error:

Código:
Parse error: syntax error, unexpected T_STRING in /home/a6125600/public_html/registrar.php on line 16
  #10 (permalink)  
Antiguo 11/09/2014, 16:55
Avatar de nicoruiztucuman  
Fecha de Ingreso: septiembre-2014
Mensajes: 7
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agregar cliente a la base de datos mediante php

Código:
<?php
/*  aquí va a ir el código necesario para insertar el cliente  */
include "conexion.php";
 
$nombre=$_POST['nombre'];
$dni=$_POST['dni'];
$fecha=$_POST['fecha'];
$facebook=$_POST['fb'];
$celular=$_POST['cel'];
 
$codigo_para_insertar="INSERT INTO Clientes(nombre,facebook) VALUES('$nombre','$dni','$fecha','$facebook','$cel')";
 
$db=crearConexion();    //esta línea me faltó antes
$db->query($codigo_para_insertar);
$db->close();
echo($codigo_para insertar);
?>
 
<html>
    <head>
        <title>Registro completado</title>
    </head>
    <body>
          <div>Se registró el cliente OK</div>
          <a href="index.html">Volver a index.html</a>
    </body>
</html>
  #11 (permalink)  
Antiguo 11/09/2014, 18:52
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 5
Respuesta: Agregar cliente a la base de datos mediante php

Te envié mal el código, por eso el error. No es echo($codigo) con parentesis, sino

Código PHP:
Ver original
  1. echo $codigo_para insertar;

Pero no importa, borra nomás esa línea porque ya apareció el problema:
Fíjate en el código de mysql que me mandas

Código PHP:
Ver original
  1. $codigo_para_insertar="INSERT INTO Clientes(nombre,facebook) VALUES('$nombre','$dni','$fecha','$facebook','$cel')";

Tienes que hacer que los elementos de
INSERT INTO Clientes(1,2,3,n)
se correspondan con los de
VALUES(1,2,3,n).
Si son 5 en un paréntesis, tienen que ser 5 en el otro, y en el mismo orden.
Entonces:

Código PHP:
Ver original
  1. $codigo_para_insertar="INSERT INTO Clientes(nombre,dni,fecha,facebook,cel) VALUES('$nombre','$dni','$fecha','$facebook','$cel')";

Y otra cosa, por si surge el error:
Mira la tabla y ve qué tipo de datos son 'dni' y 'cel'. Si son VARCHAR, van entre comillas como en el ejemplo. Si son algún tipo de numéricos (como INT o INTEGER), entonces tienes que borrarles las comillas.

Etiquetas: almacenar, cliente, formulario, informacion, mysql, registro
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 12:55.