Php 这个mySQL IF语句有什么问题?

Php 这个mySQL IF语句有什么问题?,php,mysql,Php,Mysql,我试图在mySQL查询中使用IF语句,这是我从YouTube视频中学到的。我不太确定出了什么问题。我确实收到以下mysql错误: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近“IfCouries!”“烹饪”,其中“烹饪”=“烹饪”由 二号线餐厅 好的,很抱歉缺少细节。让我再解释一下 在我的页面上,我有一个HTML表单,它有3个下拉列表作为“过滤器”。其中一个“过滤器”的默认选项是美食,它作为一个标题,如果它没有被更改,则意味着用户不想使用美食作为搜索的

我试图在mySQL查询中使用IF语句,这是我从YouTube视频中学到的。我不太确定出了什么问题。我确实收到以下mysql错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近“IfCouries!”“烹饪”,其中“烹饪”=“烹饪”由 二号线餐厅

好的,很抱歉缺少细节。让我再解释一下

在我的页面上,我有一个HTML表单,它有3个下拉列表作为“过滤器”。其中一个“过滤器”的默认选项是美食,它作为一个标题,如果它没有被更改,则意味着用户不想使用美食作为搜索的过滤器。然而,如果它改为“Western”,那么显然用户想要使用它

现在,上面的问题很容易解决,因为在上面的场景中一次只有一个过滤器。然而,当同时使用多个过滤器时,这对我来说就变得复杂了,我不知道如何解决这个问题

我的解决方案是去谷歌搜索mySQL中的某种IF语句。我偶然看到了这段视频,它可能相当不错,但是因为当时我非常匆忙,可能误解了它。以下是视频:

我想,如果我能使用这个条件,并尝试它的菜肴,我可以研究和修改它,并对它做更多的工作,让它完全得到过滤系统的工作

在下面的代码中,我的目标是检查PHP变量在SQL中=to是什么,如果它是=to'courine',那么我不想执行查询的'WHERE courine=$courine'部分$烹饪是一个变量,使用“POST”方法从简单的HTML/AJAX表单下拉菜单中获取

<?php
    $result = mysql_query("SELECT * FROM restaurants 
    IF($cuisine != 'Cuisine', WHERE Cuisine='$cuisine')
    ORDER BY restaurantID
    ")
    or die(mysql_error()); 
?>
我不确定这是否是解决我问题的正确方法,但是我现在已经向你描述了我的思路和我的问题


当我没有留下任何细节时,我理解你的沮丧,我再次道歉,因为我将记住,我将确保我未来的问题/答案更加详细,因为我把你的时间浪费在了一个写得不好的问题上

你想做什么?如果要选择烹饪列不是“烹饪”的所有行,请使用where子句:


未完全理解您的问题,但如果您想根据给定的菜肴选择所有餐厅,并根据餐厅ID订购,则可以使用:

$result = mysql_query("SELECT * FROM restaurants WHERE Cuisine = '$cuisine' ORDER BY restaurantID")

我发现了许多问题,只有提供更多信息才能解决。到目前为止,SQL语法中的错误是, IF条件的语法为

IF(<condition>, <value if true>, <value if false>)

如果您只有两个参数,这会让您感到不安。

我会将条件从SQL查询移动到PHP,在那里将生成正确的查询

if( $cuisine == 'Cuisine' ) ) {
    $conditions = '1';   // "WHERE 1" matches every record
}
else {
    $conditions = "Cuisine='$cuisine'";
}

$result = mysql_query( "SELECT * FROM restaurants 
    WHERE $conditions
    ORDER BY restaurantID
") or die(mysql_error()); 

以上假设$courine已正确消毒并逃逸。

您想实现什么目标?看起来您混合了PHP和SQL格式,但不太清楚查询应该做什么。您试图在那里实现什么?是什么阻止您使用普通的where子句?。。。。。。。。。。。。根据……的命令。。。。。。。。。。。。!作为什么?@tushar747你能发布视频链接吗???我想看这个有趣的视频。。。
if( $cuisine == 'Cuisine' ) ) {
    $conditions = '1';   // "WHERE 1" matches every record
}
else {
    $conditions = "Cuisine='$cuisine'";
}

$result = mysql_query( "SELECT * FROM restaurants 
    WHERE $conditions
    ORDER BY restaurantID
") or die(mysql_error());