私はYouTubeのビデオから学んだmySQLクエリでこのIF文を実行しようとしています。私は何がうまくいかないのか分からない。私は次のMySQLエラーを取得します:このmySQL IFステートメントで何が問題になっていますか?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF(Cuisine != 'Cuisine', WHERE Cuisine='Cuisine') AS ORDER BY restaurantID' at line 2
大丈夫、細部の不足について申し訳ありません。私はもう少しこれを説明しましょう。
私のページには、「フィルタ」として機能する3つのドロップダウンを持つHTMLフォームがあります。これらの「フィルタ」の1つのデフォルトオプションは、タイトルとして機能する「料理」です。変更されていない場合は、ユーザーが「料理」を検索のフィルタとして使用しないことを意味します。しかし、それが「西洋」と言うように変更された場合、明らかにユーザーはそれを使用したいと考えています。
上記のシナリオでは、一度に1つのフィルタしか存在しないため、上記の問題は解決するのが非常に簡単です。しかし、一度に複数のフィルタが使用されている場合、これは私にとっては複雑になり、この問題に対処する方法はわかりません。
私の解決策は、GoogleでmySQLのIF文を検索することでした。私はこのビデオを見に行きました(おそらくかなり良いですが、当時は非常に急いで、おそらくそれを誤解していたかもしれません)。 http://www.youtube.com/watch?v=3xK5KKQx-J0
私は条件を使用して料理を試してみると、それを研究して修正し、フィルターシステムを完全に稼働させるためにもう少し作業することができたと私は考えていました。
私の目的は、SQLでPHPの変数が何であるかを調べることです。もしそれが 'Cuisine'ならば、 'WHERE Cuisine = $ cuisine'の部分を実行したくありません。クエリ。 $ cuisineは、 'POST'メソッドを使用した単純なHTML/AJAXフォームのドロップダウンメニューから取られた変数です。これは私の問題を解決するための正しいアプローチであれば、私はよく分からない
<?php
$result = mysql_query("SELECT * FROM restaurants
IF($cuisine != 'Cuisine', WHERE Cuisine='$cuisine')
ORDER BY restaurantID
")
or die(mysql_error());
?>
P.Sは、しかし、私は今、上記のあなたに思考の私の電車と私の問題を説明してきました。
詳細を残したときのあなたの欲求不満を理解しています。もう一度謝ります。あなたの時間を無駄に書かれた質問で浪費したので、今後の質問/回答がより詳細になるように覚えています。
あなたは何を達成しようとしていますか? PHPとSQLフォーマットを混在させているようですが、クエリが何をすべきかはあまり明確ではありません。 – JJJ
ここで何を達成しようとしていますか? –
普通の 'where'節を使用できないのはなぜですか? – adarshr