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
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?