0
下面的查詢只是來自三個不同網站的查詢集合,鏈接在一起形成第四個網站中的單個查詢。通過查詢傳遞值(PHP/MySQL)
它工作正常,但我需要弄清楚如何維護每個子查詢的身份。例如,如果腳本顯示錶calendar_gw中的一些數據,我想知道該數據最初與網站GeoWorld(gw)相關聯。然後,我可以修改內容/顯示,或者簡單地添加一個註釋「來自GeoWorld的數據」。
我認爲顯而易見的解決辦法是簡單地使用別名,像這樣...
CGZ.Brief AS GZ_Brief
然後我可以進入while循環,並插入類似下面的一個...
$Brief = $row['GZ_Brief];
$Brief = $row['CGZ.GZ_Brief];
$Brief = $row['CGZ_Brief];
但這些都不適合我。另一種解決方案,甚至可能更好,將是創建一個PHP開關,不知怎的,一個網站與輸出關聯...
switch($Brief)
{
case 'CGZ_Brief':
$MySiteID = 'GW';
break;
default:
break;
}
誰能告訴我如何完成我想要做什麼? (順便說一句,價值$ MyURL是一個簡單的頁面URL,像May_1在URL中的MySite /日曆/ May_1。)
$stm = $pdo->prepare("SELECT CGW.N, CGW.URL, CGW.Date, CGW.Year, CGW.Brief
FROM calendar_gw CGW
WHERE CGW.URL = :MyURL
UNION ALL
SELECT CGZ.N, CGZ.URL, CGZ.Date, CGZ.Year, CGZ.Brief
FROM calendar_gz CGZ
WHERE CGZ.URL = :MyURL
UNION ALL
SELECT CSL.N, CSL.URL, CSL.Date, CSL.Year, CSL.Brief
FROM calendar_sl CSL
WHERE CSL.URL = :MyURL
ORDER BY Year");
$stm->execute(array(
'MyURL'=>$MyURL
));
$prevYear = null;
while ($row = $stm->fetch())
{
$Brief2 = $row['Brief'];
$Year = $row['Year'];
if ($Year == $prevYear) {
$YearStr = '• ';
} else {
$YearStr = $Year . '– ';
$prevYear = $Year;
}
$Brief[] = $YearStr.$row['Brief'];
}