1

我添加了 AND 行,t.cover='$c'现在它不会显示任何结果。但是,所有变量都是正确的。如果我在 phpMyAdmin 中运行该行,它将很好地显示结果。我在 PHP 中缺少语法吗?如果我删除该t.cover='$c'脚本在网络上工作正常。 $c只是一个$_GET['c'],要么为空,要么等于 0,我将其重新定义为“否”。

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 中工作,但在网络上却没有显示任何行。

看来我已经在 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 回答