1

AND という行を追加したところt.cover='$c'、結果が表示されなくなりました。ただし、すべての変数は正しいです。phpMyAdmin でこの行を実行すると、結果が正常に表示されます。PHP に構文がありませんか? t.cover='$c'スクリプト を削除すると、Web 上で正常に動作します。は空になるか 0 になる$c単純な aであり、これを「いいえ」に再定義します。$_GET['c']

if($t != '') {
    if($c == 'No') {
         $getListings = mysql_query("SELECT * FROM events t LEFT JOIN bars b on t.venue=b.name WHERE t.date='$date' AND t.type='$t' AND t.cover='$c' AND b.active='1' ORDER BY t.promoted DESC, t.order ASC");
    } else {
         $getListings = mysql_query("SELECT * FROM events t LEFT JOIN bars b on t.venue=b.name WHERE t.date='$date' AND t.type='$t' AND b.active='1' ORDER BY t.promoted DESC, t.order ASC");
    }
} else {
     if($c == 'No') {
          $getListings = mysql_query("SELECT * FROM events t LEFT JOIN bars b on t.venue=b.name WHERE t.date='$date' AND t.cover='$c' AND t.type='$t' AND b.active='1' ORDER BY t.promoted DESC, t.order ASC");
     } else {
          $getListings = mysql_query("SELECT * FROM events t LEFT JOIN bars b on t.venue=b.name WHERE t.date='$date' AND b.active='1' ORDER BY t.promoted DESC, t.order ASC");
     }
}

私の最大の混乱は、phpMyAdmin で動作するのに Web 上に行が表示されない理由です。

私はGoogleですべてを試したようですが、それでもうまくいきません。エラーまたは何かをスローして方向を示すことを望みますが、クエリが空であるかのように表示されます。誰かが何か考えを持っているなら、私はまだ入力を探しています。多分LEFT JOINはそれをやっていますか?

4

1 に答える 1

1

... LEFT JOIN bars b on t.venue=b.name AND b.active=1...
WHERE から b.active を削除します。削除しないと、SELECT の条件になります

現在のクエリにはSELECT... WHERE ... b.active = 1 ...、その条件が満たされた場合にのみ結果を返すことができるという意味があります

于 2012-07-04T03:56:02.273 に答える