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'];
}