我添加了行并t.cover='$c'
,现在它不会显示任何结果。但是,所有变量都是正确的。如果我在phpMyAdmin中运行该行,它将很好地显示结果。我在PHP中缺少语法吗?如果我删除t.cover='$c'
脚本,它在web上运行良好。$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中工作,但在web上却没有显示行。
看来我在谷歌上什么都试过了,还是没什么运气。我希望它会抛出一个错误或其他东西来指向某个方向,但它只是像空查询一样出现。如果有人有任何想法,我仍然在寻找输入。也许是左联干的?
最佳答案
…LEFT JOIN bars b on t.venue=b.name AND b.active=1
。。。
从WHERE中移除b.active,否则它将成为SELECT的一个条件
当前查询有SELECT... WHERE ... b.active = 1 ...
意味着它只能返回满足该条件的结果
关于php - MySQL查询未显示为LEFT JOIN和多个AND子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11318264/