我有我認爲是一個簡單的查詢,但我似乎無法讓它工作。所有幫助讚賞!PHP MySQL:疑難解答查詢
的表:
有兩個表涉及:gallery_meta
和prm_album
。 The gallery_meta
tbl包含存儲在文件結構中的圖像的數據。 prm_album
tbl只是將專輯ID與專輯常規文字名稱對齊。對於這兩個tbls,查詢中使用的字段名稱都是正確的。
查詢:
在下面的代碼,我首先得到保存專輯名稱的數組。然後我檢查文件結構以查看哪些目錄實際上包含圖像。在這一點上,我想再次查詢數據庫爲每個專輯返回的正面縮略圖。這個過程失敗了。
我所得到的只是一個白屏,沒有任何錯誤報告。數組$albums
正在成功填充,並且$id
變量正在傳遞給$q
查詢。 $pattern
只是存儲專輯目錄的父目錄的文件路徑。
//Get album names from db
$albums = array();
$q="SELECT ID, Name FROM prm_album WHERE 1";
$sql=mysql_query($q) or die(mysql_error());
while($r=mysql_fetch_array($sql)) {
$album = $r['Name'];
$album_dir = $pattern.$album.'/';
//check which albums actually contain images (dividing to account for thumbs, med, lrg.)
$filecount = count(glob($album_dir.'*'))/3;
//if images found, put album in array
if($filecount >= 1) {
$albums[ $r['ID'] ] = $filecount;
}
}
foreach($albums as $id => $filecount) {
$q="SELECT m.AlbumID, m.FileName, m.FileExt,
m.LegacyName, m.IsDefault,
p.Name
FROM gallery_meta AS m
LEFT JOIN prm_album AS p
ON m.AlbumID = p.ID
WHERE m.AlbumID = $id
AND Public = 1
ORDER BY IsDefault DESC
LIMIT 0,1";
$sql=mysql_query($q) or die(mysql_error());
while($r=mysql_fetch_array($sql)) {
$album=$r['Name'].'/';
$legacyname=$r['LegacyName'];
$filename=$r['FileName'].'-sm.';
$ext=$r['FileExt'];
echo '<img src="'$pattern.$album.$filename.$ext.'" />'.$legacyname.'<br/>';
}
}
您有'error_reporting'打開並且'display_errors'打開了嗎?我在你的代碼中看到的唯一輸出是'echo' 2012-07-15 22:54:36
您是否在MySQL客戶端中測試了您的查詢以確認它確實返回了一行? – 2012-07-15 22:56:37
@Michael在PHP MyAdmin控制檯嘗試它 - 工作正常。我真的不能看到它有什麼問題。如果我在foreach語句中刪除查詢,則頁面處理沒有問題。隨着查詢 - 白色屏幕。即使有'error_reporting(E_ALL);'! – Eamonn 2012-07-15 23:05:23