用于在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%”
,在那里,试一试。你可以随时跳到这里,别害羞。我想《拉库奇纳》的剧组很忙。