Insertar datos de un formulario en base de datos

Ante todo decir que soy nuevo en esto del php, y me gustaría hacer un formulario para recoger datos, este es el php:
<?php
 $conn = mysql_connect("localhost","root","mi contraseña");
//selecciono la BBDD
mysql_select_db("mi base de datos",$conn);
//Ejecucion de la sentencia SQL
$sql= "INSERT INTO clientes (usuario,email,seccion,provincia,titulo,
telefono,movil,localidad,dias,descripcion,sugerencias)
VALUES($usuario,
$email,
$seccion,
$provincia,
$titulo,
$telefono,
$movil,
$localidad,
$dias,
$descripcion,
$sugerencias)";
mysql_query($query, $conn);
header ("Location:cliente.html");
// Cerrar conexión a la Base de Datos
mysql_close($conn);?>
El problema es que una vez completado el formulario, y darle a "enviar", no se me cargan los datos en la base de datos.
¿Me podrías decir que es lo que hago mal o que me falta?.

1 respuesta

Respuesta
1
Deben interferir 3 archivos: el de las claves, el form que recibe datos del usuario y el php que guarda en la base.
En tu ejemplo, el archivo que debería guardar los datos, no está recibiéndolos de ninguna parte. Estos deben ser enviados delde el form al php mediante un método POST. Te agregaré un ejemplo funcional.
**********ingresar.php******este recibe datos del usuario*************
<? session_start();
// comprobar variables de sesión
  if (session_is_registered("valid_user"))
  {  }
  else
  {
echo "
<script>location.href='../index.php';</script>
";
  }
?>
<?include("../includes/head.php");?>
<LINK REL="stylesheet" HREF="../estilos.css" TYPE="text/css">
<html>
<head>
<title>ZoluTeK - IntraNet | Ingresar</title>
<SCRIPT LANGUAGE="JavaScript"><!--COMPLETAR TODOS LOS CAMPOS-->
    function Enviar(form) {
    for (i = 0; i < form.elements.length; i++) {
    if (form.elements.type == "text" && form.elements.value == "") {  
    alert("Por favor complete todos los campos del formulario"); form.elements.focus();
    return false; }
    }
    form.submit();
    }
</SCRIPT>
<script LANGUAGE="JavaScript"><!--EVITAR REENVIO DE FORMULARIO-->
var cuenta=0;
function enviado() {                       
   if (cuenta == 0)
      {
      cuenta++;
      return true;
      }
   else
      {
      alert("El siguiente formulario ya ha sido enviado, muchas gracias.");
      return false;
      }
   }
</script>
</head>
<body background="../images/fondo.jpg">
<center><img src="./imagenes/ingreso.gif"></img></center><br>
<form enctype="multipart/form-data" method="POST" ACTION="ingresar_.php" onSubmit="return enviado()">
<table border="0">
<tr>
<td>
    <fieldset><legend>Ingreso de registro</legend><br>
    Código<BR>    <INPUT class="boton" type="text" name="codigo" value="" maxlength="6"><BR>
    Imagen<br>    <input class="boton" type="file" name="archivo"><br>
    Nombre<BR>    <INPUT class="boton" type="text" name="nombre" value=""><BR>
    Stock<BR>    <INPUT class="boton" type="text" name="stock" value=""><BR>
    Familia<BR>    <INPUT class="boton" type="text" name="familia" value=""><BR><BR>
    <input type="hidden" name="max_file_size" value="500000">
    <INPUT class="boton" type="button" value="Ingresar" onClick="return Enviar(this.form)"></INPUT>
    <input class="boton" type="reset" value="Restablecer">
    </fieldset>
</td>
</tr>
</table>
</form>
<br>
<a href="mostrar.php" title="Volver"><img border="0" src=../images/back.gif></a>
</body>
</html>
**********ingresar_.php******este recibe desde ingresar.php y guarda en sql***
<? session_start();
// comprobar variables de sesión
  if (session_is_registered("valid_user"))
  {  }
  else
  {
echo "
<script>location.href='../index.php';</script>
";
  }
?>
<?include("../includes/head.php");?>
<html>
<head>
<title></title>
<LINK REL="stylesheet" HREF="./css/estilos.css" TYPE="text/css">
<script LANGUAGE="JavaScript"><!--REDIRECCIONADOR
var pagina="mostrar.php"
function redireccionar()
{
location.href=pagina
}
setTimeout ("redireccionar()", 1000);
</script>
</head>
<body background="../images/fondo.jpg">
<?php
$ruta = "./imagenes/articulos/";
if (isset($_FILES['archivo']) && $_FILES['archivo']['size'] > 0) {
    $tamanyomax = 5000000; //tamaño en bytes
    $nombretemp = $_FILES['archivo']['tmp_name'];
    $nombrearchivo = $_FILES['archivo']['name'];
    $tamanyoarchivo = $_FILES['archivo']['size'];
    $tipoarchivo = GetImageSize($nombretemp);
    //if ($tipoarchivo[2] == 1 || $tipoarchivo[2] == 2) { //valido gif ^ jpg
        if ($tamanyoarchivo <= $tamanyomax){ //valido tamaño
            if (move_uploaded_file($nombretemp, $ruta . $nombrearchivo)) {
                echo "
<p>Detalle de imagen.</p>
<br>
                Tamaño de imagen: <b>$tamanyoarchivo</b> bytes<br>
                Nombre de imagen: <b>$nombrearchivo</b><br></p>
";
            } else {            
                echo "
<p>No se ha podido cargar el archivo.</p>
";
                }
        } else {
            echo "
<p>El archivo tiene más de <b>$tamanyomax bytes</b> y
            es demasiado grande.</p>
";
            }
        } else {
            echo "
<p>No es un archivo GIF
            o JPG válido.</p>
";
            }
$filehandle = opendir($ruta); //Abrir archivos
while ($file = readdir($filehandle)) {            
    if ($file != "." && $file != "..") {
        $tamanyo = GetImageSize($ruta. $file);
        }
    }echo "
<p><img src='$ruta$nombrearchivo'></img><br></p>
\n";//muestro la imagen almacenada
    closedir($filehandle);
?>
<?
include("../conex.php");
$link=conectarse();
$codigo=$_POST["codigo"];
$rutafoto="$ruta$nombrearchivo";
$nombre=$_POST["nombre"];
$stock=$_POST["stock"];
$familia=$_POST["familia"];
$sql="INSERT INTO articulos (inv_codigo, inv_rutafoto, inv_nombre, inv_stock, inv_familia) VALUES ('$codigo','$rutafoto','$nombre','$stock','$familia')";
mysql_query($sql,$link);
echo "Datos ingresados con éxito.<P>";
?>
<a href="menu.php"><img border="0" src=../images/back.gif></a>
</body>
</html>
//////////////////////////////////////
El ejemplo tiene otras cosas como validación de sesiones para seguridad, ingreso de imágenes y validación entre otras cosas, pero no te alarmes, solo rescata lo que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas