【问题标题】:Nothign showing on SQL fetch?SQL fetch 上什么也没显示?
【发布时间】: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


【解决方案1】:

现在你将使用这个脚本来解决你的问题:

        $st = $db->prepare($query);
        $st->execute();
        $results = $st->fetch(PDO::FETCH_ASSOC); 
        print_r($results);  

【讨论】:

  • 这与我目前使用的代码有何不同? print_r 目前没有为我显示任何内容。
  • 您必须检查您的 $query 是否直接在数据库中运行,如果它不起作用,请更正它
猜你喜欢
  • 2013-06-29
  • 1970-01-01
  • 2014-02-13
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
相关资源
最近更新 更多