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

Error insertar datos de formulario a phpmyadmin

Tengo un formulario que tiene distintos valores para insertar a la tabla. De momento, solo me funciona los valores de texto, pero tengo otros que son checkbox y select.
Aquí el código:
HTML

<div class="form-group">
            <label for="nombre">Nombre</label>
            <input type="text" name="nombre" class="form-control" id="ejemplo" placeholder="Nombre Ejemplo" style="width: 30%">
          </div>
          <div class="checkbox">
        <label>
                <input type="checkbox" name="check1" value="aceptado"> 1
                <span class="checkmark"></span>
        </label>
        <label>
                <input type="checkbox" name="check4" value="aceptado"> 4
                <span class="checkmark"></span>
        </label>
        </div>
        <div class="checkbox">
        <label>
            <input type="checkbox" name="check2" value="aceptado"> 2
                <span class="checkmark"></span>
        </label>
        <label>
                <input type="checkbox" name="check5" value="aceptado"> 5
                <span class="checkmark"></span>
        </label>
    </div>
    <div class="checkbox">
        <label>
                <input type="checkbox" name="check3" value="aceptado"> 3
                <span class="checkmark"></span>
        </label>
        <label>
                <input type="checkbox" name="check6" value="aceptado"> 6
                <span class="checkmark"></span>
        </label>
    </div>
          <div class="col-md-offset-7 col-md-3"> 
          <select class="custom-select" style="width:100%;" name="select">
                <option value="0">Elige uno:</option>
        <option value="1">Uno</option>
        <option value="2">Dos</option>
        <option value="3">Tres</option> 
            </select><br>
          </div>

          <div>
      <br><label for="Mensaje">Mensaje</label>
          <textarea name="mensaje" class="form-control" rows="3" placeholder="Mensaje"></textarea><br>
          </div>

Guardar.php (Guarda los resultados para mandarlos a la tabla

<?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'];
    $mensaje=$_POST['mensaje'];
    $check1=$_POST['check1'];
    $check4=$_POST['check4'];
    $check2=$_POST['check2'];
    $check5=$_POST['check5'];
    $check3=$_POST['check3'];
    $check6=$_POST['check6'];
    $select=$_POST['select'];

    //Hacer secuencia sql
    $sql="INSERT INTO datos (nombre, mensaje, check1, check4, check2, check5, check3, check6, select) VALUES ('{$nombre}','{$mensaje}','{$check1}','{$check4}','{$check2}','{$check5}','{$check3}','{$check6}','{$select}')";

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

    //verificamos la ejecucion
    if($ejecutar){

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

    }else{

        echo "Hubo Algun Error";

    }
?>

Mostrar.php (Muestra los datos en la tabla)

<?php 

    //hacemos la conexion para la base de datos:
    $con= mysqli_connect('localhost','root','');

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

        echo"No Se Encontro El Servidor";

    }else{

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

            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>Mensaje</th>";
    echo "<th align='center'><b>Check</th>";
    echo "<th align='center'><b>Select</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>";
?>

Y esto es lo que tengo en el phpMyAdmin
Tabla

Al darle a enviar en el formulario, me da un error, pero solo me pone "Hubo algún error". Varias cuestiones:

1- No sé si en la siguiente parte de código hace falta poner más datos:

        echo "<th align='center'><b>Nombre</th>";
    echo "<th align='center'><b>Mensaje</th>";
    echo "<th align='center'><b>Check</th>";
    echo "<th align='center'><b>Select</th>;

2- ¿Me salté algo para que diese error?
3- En el phpMyAdmin, ¿cual sería el tipo del check y del select?

1 Respuesta

2votos

KevinconK Puntos1400

Buenos Dias,
1-. Primero tendremos que hacer que funcione el insertar. (podrias imprimir la variable $sql "echo $sql").

Aqui te adjunto un ejemplo trabajando con checkbox. (https://www.jose-aguilar.com/blog/validar-input-checkbox-con-php/)

0voto

Lilii comentado

He estado leyendo el ejemplo, pero claro, mi formulario va a tener distintas checkbox, pueden marcar 1, o las que quieran, no sé si ese ejemplo sirve igual

1voto

KevinconK comentado

Si te sirve igual , solo que tendrias que validar cada uno de los checkbox.

0voto

Lilii comentado

Entiendo, voy a probarlo

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