【发布时间】:2016-12-24 02:34:54
【问题描述】:
这是我的 SQL:
SELECT BachelorsDegrees.Name, BachelorsDegrees.BachelorsDegrees,
College_Data.City
FROM BachelorsDegrees
LEFT JOIN College_Data ON College_Data.City=BachelorsDegrees.Name
WHERE BachelorsDegrees.BachelorsDegrees = :SelectedDegree
&& College_Data.City = :SelectedCity
我有多个表。
学士学位是一张表
College_Data 是另一个表
BachelorsDegrees 是 BachelorsDegrees 表内的一列(是的,我将该列命名为与表相同的名称,但它代表该学位类型下的课程名称)
City 是 College_Data 表中的一列
Name 是 BachelorsDegrees 表中的一列
基本上,搜索表单允许用户根据以下内容查找大学:学位类型、城市和课程名称。
如果学位类型是“学士学位”,则查询将进入学士学位表,搜索与课程名称匹配的学院/大学,然后进入 College_Data 表,然后查找与城市。
所以城市和课程名称必须匹配。
问题是,当我测试搜索表单时,结果页面上没有显示任何内容。
我的获取代码如下所示:
try {
$query = $db->prepare($query);
$query->execute($params);
$result = $query->fetch(PDO::FETCH_ASSOC);
print_r($result);
//foreach ($query as $row) {
//echo 'College Name: '.$row['Name'];
//echo '<br /> Accreditation: '.$row['Accreditation'];
//echo '<br /> Term Type: '.$row['TermType'];
//echo $userSelection;
//echo $selectedCity;
//}
} catch (PDOException $ex) {
echo "Unable to fetch Degrees!: ".$ex->getMessage()."<br/>";
}
【问题讨论】:
-
这个连接条件在我看来肯定不合适:
College_Data.City=BachelorsDegrees.Name。 -
是否定义了
$params?尝试在页面顶部添加error_reporting(E_ALL);和ini_set('display_errors', true); -
一些合理的代码缩进是个好主意。它帮助我们阅读代码,更重要的是,它将帮助您调试代码 Take a quick look at a coding standard 为您自己谋福利。您可能会被要求在几周/几个月内修改此代码,最后您会感谢我的。
-
@Matt - 是的,它已定义。页面上没有错误。
-
旁注:您肯定有很多未接受的问题。我们不知道是否有任何或全部为您提供了解决方案。它们应该被标记为已解决,否则 Stack 认为此时它们尚未解决。
标签: php mysql sql-server pdo