我的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
我有多个表。
BachelorsDegrees是一个表
College_Data是另一个表
BachelorsDegrees是BachelorsDegrees表中的一个列(是的,我将该列命名为与表同名,但它表示该学位类型下的课程名称)
City是College_Data表
中的一列Name是BachelorsDegrees表中的一列
基本上,搜索表单允许用户根据以下条件查找大学:学位类型、城市和课程名称。
如果Degree类型是"学士学位",查询将进入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/>";
}
现在你将使用这个脚本,你的问题将解决:
$st = $db->prepare($query);
$st->execute();
$results = $st->fetch(PDO::FETCH_ASSOC);
print_r($results);