2011-04-02 47 views
1

块1PHP的错误

<?php 
// Filter our input. 
$dID = filter_input(INPUT_GET, 'dID', FILTER_SANITIZE_NUMBER_INT); 
if(!$dID) { 
    echo "<h2 style='color:red;'>Invalid Department</h2>"; 
    exit; 
} 
$username = "###"; 
$password = "####"; 
$pdo = new PDO('mysql:host=localhost;dbname=####', $username, $password); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sth = $pdo->prepare(' 

$某物= $ pdo->准备(” SELECT 名,FNAME,LNAME,picpath,电子邮件 FROM系教授 WHERE Department.dID =? '); '); $ sth-> execute(array( $ dID ));

?> 

块2

<?php 
      echo "<span>{$row['name']}"; 
      // Did we get any professors in this dept? 
      while($row2 = $sth->fetch(PDO::FETCH_ASSOC)) { 
        echo "<span>{$row['fname']} | {$row['lname']} | </span>" 


        ; // echo 
      } 
      unset($sth); 
    ?> 

输出给定:

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 

DEPT表: Dept Table

表教授: Prof Table

它似乎不喜欢我的查询,不知道为什么,但它不从数据库中拉东西。它可能是一个SQL错误?我很为难

当我在phpMyAdmin测试它给了我: pma

更新的查询: SELECT名字,FNAME,LNAME,picpath,电子邮件 FROM系教授 WHERE Department.dID = Professor.dID AND Department.dID =?

虽然它仍然没有工作。基本上这个页面例如在url中:'/dept.php?dID=30'它抓取了dID,并且应该显示部门中的所有教授。任何人???

+0

尝试使用'WHERE Department.dID =?'而不是 – yoavmatchulsky 2011-04-02 14:11:34

+0

什么的错误代码说? – BugFinder 2011-04-02 14:13:19

+0

@yoavmatchulsky - 是的,我尝试过。我的查询现在已更新。 – Jshee 2011-04-02 14:16:03

回答

1

在你while循环

 while($row2 = $sth->fetch(PDO::FETCH_ASSOC)) { 
       echo "<span>{$row['fname']} | {$row['lname']} | </span>" 


       ; // echo 
     } 

您使用$行但在echo您使用$row['fname']

+0

好的抓M42。谢谢:) – Jshee 2011-04-02 14:28:36

+0

@woopie:不客气。 – Toto 2011-04-02 14:29:54

0

您是否尝试过直接对数据库执行查询?我不是PHP编码器,我大部分的SQL经验都是T-SQL,但你的where子句说WHERE WHERE dID = ? - 我猜这可能是一些事情。首先,除非它是一个特殊的MySql,否则问题prolly不会让你知道你是什么。此外,在这种情况下,dID将是一个模糊的参考,因为这两个表似乎都有dID列。另外,我在思考(再一次,除非MySql的工作方式与T-SQL不同),而不是将您的问题放在where子句中,而不是将Department.dID = Professor.dID放在您的where子句中。此外,重申一下,在将其放入PHP之前直接执行此操作可能会让您发现一些很好的错误,从中找出您的查询无法正常工作的原因。