用于在php中筛选结果的下拉菜单从sql获取所有结果

用于在php中筛选结果的下拉菜单从sql获取所有结果,php,mysql,dropdown,Php,Mysql,Dropdown,我有一个下拉列表: <select class="w-select filterdropdown" id="Tipo-de-cocina" name="tipofiltro" data-name="Tipo de cocina"> <?php if (isset($_GET['tipofiltro'])) { echo '<option value="' .$filtrocuisine. '"> ' .$filtrocuisine. "&

我有一个下拉列表:

<select class="w-select filterdropdown" id="Tipo-de-cocina" name="tipofiltro" data-name="Tipo de cocina">
<?php
    if (isset($_GET['tipofiltro'])) {
        echo '<option value="' .$filtrocuisine.  '"> '  .$filtrocuisine. "</option>";

    } else {
        echo '<option value="Todos los tipos">Todos los tipos</option>';
    }

?>


              <option value="Japonesa">Japonesa</option>
              <option value="Mexicana">Mexicana</option>
              <option value="India">India</option>
              <option value="Mediterranea">Mediterranea</option>
              <option value="Italiana">Italiana</option>
              <option value="Americana">Americana</option>
              <option value="Asiatica">Asiatica</option>
              <option value="Thai">Thai</option>
              <option value="China">China</option>
              <option value="Francesa">Francesa</option>
              <option value="Turca">Turca</option>
              <option value="Latina">Latina</option>
              <option value="Africana">Africana</option>
              <option value="Griega">Griega</option>
              <option value="Arabe">Arabe</option>


            </select>

日本
墨西哥
印度
地中海号
意大利语
美洲人
积雪草
泰国人
中国
弗朗西萨
图尔卡
拉丁语
非洲人
格里加
阿拉贝
当用户选择字段“Todos los tipos”时,我的sql查询将返回所有类型,我如何才能做到这一点?这就是背后的sql:

if (isset($_GET['preciofiltro']) OR isset($_GET['preciofiltro'])) {
    $filtroprecio = $_GET['preciofiltro'];
    $filtrocuisine = $_GET['tipofiltro'];

    $sql = "SELECT Meals.Meal_ID, Meals.Name, Price, Cooks.Cook_ID 
            FROM Meals 
               INNER JOIN Cooks ON Cooks.Cook_ID = Meals.Cook_ID 
            WHERE Cooks.Area = '$area' 
              AND Meals.Capacity > 0 
              AND Meals.Price < '$filtroprecio' 
              AND Meals.Type = '$filtrocuisine'";

    $result = mysqli_query($conn, $sql);
if(isset($\u GET['preciofiltro'])或isset($\u GET['preciofiltro'])){
$filtroprecio=$_GET['preciofiltro'];
$filtrocuisine=$_GET['tipofiltro'];
$sql=“选择fines.fine\u ID,fines.Name,Price,Cooks.Cook\u ID
饭后
在Cooks.Cook\u ID=fines.Cook\u ID上加入内部Cooks
烹饪的地方。面积=“$Area”
和膳食。容量>0
价格<'filtroprecio$
类型=“$filtrocuisine”;
$result=mysqli\u查询($conn,$sql);
基本上,我需要一些东西,比如“和膳食。Type=any”


干杯!

虽然有更简单的方法,但不需要重写所有内容,简单的答案是,如果用户从下拉列表中选择
Todos los tipos
,您实际上要做的是删除此选择条件
和膳食。Type='$filtrocuisine'
完全从查询中删除,即不再使用这是一个标准

因此,请按以下方式更改脚本:-

当然,我假设您已经从
$\u GET
数组中获取了数据,对其进行了验证,并在我们获取此代码之前对其进行了清理

if (isset($_GET['preciofiltro']) OR isset($_GET['preciofiltro'])) {
    $filtroprecio = $_GET['preciofiltro'];
    $filtrocuisine = $_GET['tipofiltro'];

$sql = "SELECT Meals.Meal_ID, Meals.Name, Price, Cooks.Cook_ID 
        FROM Meals 
           INNER JOIN Cooks ON Cooks.Cook_ID = Meals.Cook_ID 
        WHERE Cooks.Area = '$area' 
          AND Meals.Capacity > 0 
          AND Meals.Price < '$filtroprecio'";

if ( isset($filtrocuisine) && $filtrocuisine == 'Todos los tipos' ) {
    $sql .= " AND Meals.Type = '$filtrocuisine'";
}

$result = mysqli_query($conn, $sql);
if(isset($\u GET['preciofiltro'])或isset($\u GET['preciofiltro'])){
$filtroprecio=$_GET['preciofiltro'];
$filtrocuisine=$_GET['tipofiltro'];
$sql=“选择fines.fine\u ID,fines.Name,Price,Cooks.Cook\u ID
饭后
在Cooks.Cook\u ID=fines.Cook\u ID上加入内部Cooks
烹饪的地方。面积=“$Area”
和膳食。容量>0
价格<$filtroprecio';
如果(isset($filtrocuisine)&&$filtrocuisine=='Todos los tipos'){
$sql.=“AND-feeds.Type=”$filtrocuisine';
}
$result=mysqli\u查询($conn,$sql);

选择一个选项后,您想从数据库中获取值??您想获取(显示)数据库中的某些查询记录吗?那么,您目前使用的查询有什么不起作用?顺便说一句,这
如果(isset($\u GET['preciofiltro'])或isset($\u GET['preciofiltro'])
没有意义。你可能打算使用
if(isset($\u GET['preciofiltro'])或!empty($\u GET['preciofiltro'])
。或
if(isset($\u GET['preciofiltro'])或isset($\u GET['tipofiltro'])
。或者……你知道我的意思;-)
和|或膳食。键入“%$filtroguisine%”
,在那里,试一试。你可以随时跳到这里,别害羞。我想《拉库奇纳》的剧组很忙。