entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Formulario html con php

Estoy haciendo un formulario para que recoja los datos que lleguen a él a una base de datos local.
El formulario se muestra, hasta ahí bien. Pero al querer enviar los datos, me da un error, y no sé qué está pasando. He revisado todos los documentos una y otra vez y no encuentro el fallo. A ver si me pueden ayudar.
index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Formulario</title>
        <link rel="stylesheet" type="text/css" href="estilo.css">
    </head>
    <body>
        <div class="form">
            <form action="guardar.php" method="POST">
                <p>Nombre</p>
                <label for="nombre">Su nombre</label>
                <br>
                <input type="text" name="nombre" placeholder="Nombre" required>
                <p>Correo</p>
                <label for="correo">Direccion De Correo</label>
                <br>
                <input type="email" name="correo" placeholder="[email protected]" required>
                <p>Mensaje</p>
                <label for="mensaje">Su Mensaje</label>
                <br>
                <textarea name="mensaje" placeholder="Mensaje" required></textarea>
                <br>
                <br>
                <input type="submit" value="Enviar">
            </form>
        </div>
    </body>
</html>

guardar.php

<?php
    //conectamos Con el servidor
    $host="localhost";
    $user="root";
    $pass="";
    $db="prueba";

    $con = mysqli_connect($host,$user,$pass,$db) or die ("Problemas al conectar");
    mysqli_select_db($con,$db) or die ("Problemas al conectar con la base de datos");

    //recuperar las variables
    $nombre=$_POST['nombre'];
    $correo=$_POST['correo'];
    $mensaje=$_POST['mensaje'];

    //Hacer secuencia sql
    $sql="INSERT INTO datos VALUES ('$nombre','$correo','$mensaje'";

    //ejecutamos la sentencia de sql
    $ejecutar=mysqli_query($con,$sql);

    //verificamos la ejecucion
    if(!$ejecutar){

        echo"Hubo Algun Error";

    }else{
        echo"Datos Guardados Correctamente<br><a href='index.html'>Volver</a>";
    }
?>

mostrar.php

<?php 
    //hacemos la conexion para la base de datos:
    $con= mysqli_connect($host,$user,$pass);

    //verificamos la conexion
    if(!$con){

        echo"No Se Encontro El Servidor";

    }else{

        $bd= mysqli_select_db('prueba'); //nombre bbdd
    //verificamos la base de datos
        if(!$baseDedatos){

            echo"No Se Encontro La Base De Datos";

        }
    }
    //Se Hace la sentencia sql:
    $sql="SELECT * FROM datos"; //nombre tabla

    //ejecutamos la sentencia de slq:
    $ejecutar=mysqli_query($sql);

    //traemos todos los valores en un array:
    $datos=mysqli_fetch_array($ejecutar);

    //imprimimos los datos de manera dinamica
    echo "<table border='1'>";
    echo"<tr>";
    echo "<th align='center'><b>Nombre</th>";
    echo "<th align='center'><b>Correo</th>";
    echo "<th align='center'><b>Mensaje</th>";
    echo"</tr>";
    for($i=0; $i<$datos; $i++){
        echo"<tr><td>$datos[0]</td>";
        echo"<td>$datos[1]</td>";
        echo"<td>$datos[2]</td>";
        echo"</tr>";
        $datos=mysqli_fetch_array($ejecutar);
    }
    echo"</table>";
?>

La base de datos se llama "prueba", la tabla "datos", y tienen las mismas variables.
Cuando voy a guardar los datos, me sale una pantalla en blanco con "hubo algun error".

1 Respuesta

2votos

magarzon Puntos30630

Te falta cerrar tu query con un ):

 $sql="INSERT INTO datos VALUES ('$nombre','$correo','$mensaje')";

Mi consejo es que en lugar de mostrar el error "Hubo un error", utilices la función mysqli_error para que te diga exactamente qué error hubo con la consulta, porque así te habrías dado cuenta tú mismo.

1voto

Lilii comentado

No me había dado cuenta! Y eso que revisé una y otra vez, muchas gracias!
Añadiré la función que me dices para próximas veces. ¡Gracias!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta