D
Die Katze
Curioso
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Estoy haciendo un proyecto de tienda virtual con PHP y HTML en el que quiero poner un filtro con el que ordenar los productos en base al precio y al orden alfabético. Tengo el siguiente código (he quitado cosas que no interesan para lo que quiero hacer, como el menú o el footer):
Entonces, mi pregunta es cuál es el código PHP que tengo que usar para que al seleccionar la opción que quiero en el select option me aplique las acciones que le indico. Sé que la consulta a la base de datos sería con "SELECT * FROM productos ORDER BY nombre_producto/precio ASC/DESC" con las diferentes opciones dentro de un switch, pero es que llevo unos días intentando hacerlo y tengo ya un bloqueo mental importante porque no sé cómo ponerlo para que me saque los productos tal y como los quiero. He hecho esto y lo he puesto al principio del todo fuera de las etiquetas html, pero no hace nada.
Seguro que es una cosa tontísima, pero caigo en cómo ponerlo.
HTML:
<div class="productos">
<div class="filtro">
Ordenar por:
<form method="post">
<select name="ordenar">
<option value="1">Orden alfabético (A-Z)</option>
<option value="2">Orden alfabético inverso</option>
<option value="3">Precio más bajo a más alto</option>
<option value="4">Precio más alto a más bajo</option>
</select>
<button type="submit">Aplicar</button>
</form>
</div>
<div class="mostrar_productos>
<?php
$conexion = mysqli_connect($servidor, $usuario_BD, $contrasena_BD, $basedatos);
mysqli_set_charset($conexion, "utf8");
$peticion = "SELECT * FROM producto WHERE categoria = 'cuerda'";
$resultado = mysqli_query($conexion, $peticion);
while ($fila = mysqli_fetch_array($resultado)) {
echo "<div class='col-md-3 producto_individual'>";
$peticion2 = "SELECT * FROM producto WHERE id_producto = " .$fila["id_producto"] . " ";
$resultado2 = mysqli_query($conexion, $peticion2);
echo "<h2>" . $fila['nombre_producto'] . "</h2>";
echo "<img src='imagenes/" .$fila["imagen"] . "' width = 100px>";
echo "<p>" . $fila['descripcion_corta'] . "</p>";
echo "<p>Precio: " . $fila['precio'] . " €</p>";
echo "<a class='btn btn-danger' href='producto_individual.php?id_producto=" .$fila["id_producto"]. "'><strong>Ver más</strong></a></p></div>";
}
mysqli_close($conexion);
?>
</div>
</div>
Entonces, mi pregunta es cuál es el código PHP que tengo que usar para que al seleccionar la opción que quiero en el select option me aplique las acciones que le indico. Sé que la consulta a la base de datos sería con "SELECT * FROM productos ORDER BY nombre_producto/precio ASC/DESC" con las diferentes opciones dentro de un switch, pero es que llevo unos días intentando hacerlo y tengo ya un bloqueo mental importante porque no sé cómo ponerlo para que me saque los productos tal y como los quiero. He hecho esto y lo he puesto al principio del todo fuera de las etiquetas html, pero no hace nada.
HTML:
<?php
if(isset($_POST['ordenar'])){
switch($_POST['ordenar']){
case "1":
$consulta = "SELECT nombre_producto FROM producto ORDER BY ASC;";
break;
case "2":
$consulta = "SELECT nombre_producto FROM producto ORDER BY DESC;";
break;
case "3":
$consulta = "SELECT precio FROM producto ORDER BY ASC;";
break;
case "4":
$consulta = "SELECT precio FROM producto ORDER BY DESC;";
break;
}
}else{
$consulta = "SELECT * FROM producto;";
}
?>
Seguro que es una cosa tontísima, pero caigo en cómo ponerlo.