2011-04-02 42 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之前直接執行此操作可能會讓您發現一些很好的錯誤,從中找出您的查詢無法正常工作的原因。