2

サイトのサーバーにフィルター機能を作ろうとしています。ユーザーは、フィルタリングするカテゴリのさまざまなオプションを確認できます。また、条件を満たすサーバーを返す ajax リクエストがあります。しかし、mysql_query が機能していません。構文が間違っている可能性があります。

デフォルトでは、各カテゴリのオプションは 1 に設定されています。現在のクエリは次のとおりです。

$order = "SELECT * FROM `servers` 
    WHERE `size` = '$size' or 
      1 = '$size' and 
      `type` = '$type' or 
      1 = '$type' and 
      `mode` = '$gamemode' or 
      1 = '$gamemode' and 
      `main` = '$main' or 
      1 = '$main' 
    ORDER BY $orderby 
    LIMIT 5";

正しいサーバーを取得していないようです。クエリにエラーがありますか?

ありがとう!

4

5 に答える 5

1

クエリで複数の OR 条件を使用するには、括弧を使用する必要があります

お気に入り

mysql_query("SELECT * FROM servers WHERE email='$Email' AND (date='$Date_Today' OR date='$Date_Yesterday' OR date='$Date_TwoDaysAgo' OR date='$Date_ThreeDaysAgo' OR date='$Date_FourDaysAgo')");

列名で変更できます

また、次のような IN 条件を使用することもできます

mysql_query("SELECT * FROM servers WHERE email='$Email' AND date IN ('$Date_Today','$Date_Yesterday','$Date_TwoDaysAgo')");

もっとお手伝いできることがあれば教えてください

于 2013-05-27T04:34:14.443 に答える