2012-04-16 51 views
1

我有一個LEFT JOIN SELECT語句如下所示:左加盟CMD工作提示,不是PHP

SELECT submissions.subid, submissions.title, submissions.date, files.file 
FROM submissions 
LEFT JOIN files ON submissions.subid=files.subid 
WHERE uid='1' 
ORDER BY subid DESC; 

該查詢返回正是我想它從MySQL命令提示符下運行時,但是當嘗試使用下面的代碼顯示在PHP的結果,它沒有返回值:

$subResult=mysql_query($querySub, $connection); 

while($sub = mysql_fetch_assoc($subResult)){ 

    $subs[] = $sub; 

} 

foreach($subs as $k => $v) { 

    foreach($v as $key => $val) { 

    echo $k." ".$v."<br />"; 

    } 

} 

有誰知道爲什麼會返回一個完全正常的結果,在命令行中,而不是在PHP?我知道這不是我的數據庫連接,因爲它可以在同一頁面的代碼中正常工作。我應該提到一個返回的字段包含存儲在BLOB中的二進制數據。

+2

您是否確保PHP代碼不會生成任何錯誤消息? – mellamokb 2012-04-16 20:10:13

+0

嘗試'print_r($ subs);'在你的foreach循環之前,看看它是否包含你期望循環的數據。 – Blake 2012-04-16 20:52:34

回答

1

你有兩個迴路 - 內部一個是:

foreach($v as $key => $val) {

您沒有使用任何$鍵或$值 - 如果你刪除循環發生什麼呢?

+0

呃,當然。謝謝你的幫助。 – ismaris 2012-04-19 17:03:30