【问题标题】:MySQL query not showing with LEFT JOIN and multiple AND clausesMySQL 查询未显示 LEFT JOIN 和多个 AND 子句
【发布时间】:2012-07-03 19:58:36
【问题描述】:

我添加了 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 正在这样做?

【问题讨论】:

  • 嗯,我对 PHP 了解不多,但是当我听说它在一个地方和另一个地方都可以工作时,我立即认为这是我的权限问题。您从 phpMyAdmin 与网站登录的用户是什么?
  • 你能打印出查询来看看 $c 实际上是什么吗?
  • @Poodlehat,在他添加 AND t.cover = 'c$' 子句之前,该查询在网络上有效。
  • 如果设置了查询点,则打印出正确的“否”,否则将退回到其他。当我删除 AND t.cover='$c' 时,由于某种原因,整个查询就像没有字段匹配一样。但我在 phpMyAdmin 中运行 SAME 查询,它会提取结果。

标签: php mysql sql phpmyadmin


【解决方案1】:

...LEFT JOIN bars b on t.venue=b.name AND b.active=1 ...
从 WHERE 中删除 b.active 否则它将成为 SELECT 的条件

当前查询有SELECT... WHERE ... b.active = 1 ...,这意味着它只能返回满足该条件的结果

【讨论】:

  • 像这样:SELECT * FROM events t LEFT JOIN bars b on t.venue=b.name AND b.active='1' WHERE t.date='$date' AND t.type='$t' AND t.cover='$c' ORDER BY t.promoted DESC, t.order ASC 如果是这样,仍然没有运气。我从来没有对某事感到如此困惑,而且我在网上找不到任何与我的问题相似的东西。再次,在 phpMyAdmin 中工作的语法真的让我难以置信。
猜你喜欢
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2021-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
相关资源
最近更新 更多