Perform a query using a select in HTML

1

Very good, I'm trying to make a query using the selected option in HTML select, which I named "filter", I create the dynamic options and with a switch I get the selected. The case is that from there I'm stuck do not know where to put the code that loads the results and such.
I show you the code below:

<form name = "filtro"><select>
        <option value = "seleccionar">Seleccionar categoria</option>
        <option value = "centrosdeent">Centros de entretenimiento</option>
        <option value = "cocinas">Cocinas</option>
        <option value = "comedores">Comedores</option>
        <option value = "decoracion">Decoración</option>
        <option value = "recamaras">Recamaras</option>
        <option value = salas>Salas</option>
    </select></form><br>
    <?php
    switch ($_POST['filtro']){
        case 'seleccionar':
            $q = "SELECT * FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'centrosdeent':
            $q = "SELECT centrosdeent FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'cocinas':
            $q = "SELECT cocinas FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'comedores':
            $q = "SELECT comedores FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'decoracion':
            $q = "SELECT decoracion FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'recamaras':
            $q = "SELECT recamaras FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'salas':
            $q = "SELECT sala FROM muebles";
            $rs = mysql_query($q);
            break;
        default:
            $q = "SELECT * FROM muebles";
            $rs = mysql_query($q);
            break;
    }
    while ($fila = mysql_fetch_array($rs)){
        echo "<b>Nombre:</b> $fila[nom]<br>";
        echo "<b>Modelo:</b> $fila[modelo]<br>";
        echo "<b>Categoria:</b> $fila[cat]<br>";
        echo "<b>Sub Categoria:</b> $fila[subcat]<br>";
        echo "<b>Precio:</b> $fila[pre]<br><br>";}
?>
    
asked by Carlos Alberto Marrufo 27.03.2018 в 17:48
source

1 answer

1

Answering your question you should do it in the following way:

<?php 
 if (isset($_POST['enviar'])){
    switch ($_POST['filtro']){
        case 'seleccionar':
            $q = "SELECT * FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'centrosdeent':
            $q = "SELECT centrosdeent FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'cocinas':
            $q = "SELECT cocinas FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'comedores':
            $q = "SELECT comedores FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'decoracion':
            $q = "SELECT decoracion FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'recamaras':
            $q = "SELECT recamaras FROM muebles";
            $rs = mysql_query($q);
            break;
        case 'salas':
            $q = "SELECT sala FROM muebles";
            $rs = mysql_query($q);
            break;
        default:
            $q = "SELECT * FROM muebles";
            $rs = mysql_query($q);
            break;
    }
    while ($fila = mysql_fetch_array($rs)){
        echo "<b>Nombre:</b> $fila[nom]<br>";
        echo "<b>Modelo:</b> $fila[modelo]<br>";
        echo "<b>Categoria:</b> $fila[cat]<br>";
        echo "<b>Sub Categoria:</b> $fila[subcat]<br>";
        echo "<b>Precio:</b> $fila[pre]<br><br>";}

 }else{
     //Agregamos action='<?= $_SERVER['PHP_SELF'] ?>' para que se recargue la página y realice la consulta
    ?>
    <form  action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
       <select name="filtro">
            <option value = "seleccionar">Seleccionar categoria</option>
            <option value = "centrosdeent">Centros de entretenimiento</option>
            <option value = "cocinas">Cocinas</option>
            <option value = "comedores">Comedores</option>
            <option value = "decoracion">Decoración</option>
            <option value = "recamaras">Recamaras</option>
            <option value = salas>Salas</option>
        </select>
        <input type="submit" value="Consultar" name="enviar">
    </form>
    <br>
    <?php
     }

?>

Although I recommend you change to mysqli before you advance your project further, MySqli is the new php library for consultation since mysql is obsolete and insecure compared to it. Did it work for you?

    
answered by 27.03.2018 / 18:05
source