通过查询传递值(PHP/MySQL)
下面的查询只是来自三个不同网站的查询的集合,它们链接在一起形成第四个网站中的单个查询 它工作得很好,但我需要弄清楚如何维护每个子查询的标识。例如,如果脚本显示了表calendar_gw中的一些数据,我想知道这些数据最初与网站GeoWorld(gw)关联。然后,我可以修改内容/显示,或者只是添加一个注释“来自GeoWorld的数据” 我认为显而易见的解决办法是简单地使用一个别名,就像这样通过查询传递值(PHP/MySQL),php,mysql,Php,Mysql,下面的查询只是来自三个不同网站的查询的集合,它们链接在一起形成第四个网站中的单个查询 它工作得很好,但我需要弄清楚如何维护每个子查询的标识。例如,如果脚本显示了表calendar_gw中的一些数据,我想知道这些数据最初与网站GeoWorld(gw)关联。然后,我可以修改内容/显示,或者只是添加一个注释“来自GeoWorld的数据” 我认为显而易见的解决办法是简单地使用一个别名,就像这样 CGZ.Brief AS GZ_Brief 然后我可以进入while循环并插入如下内容之一 $Brief =
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,就像URL MySite/Calendar/May_1中的May_1。)
为什么不添加一个静态值呢
$stm = $pdo->prepare("SELECT 'CGW' AS Site, CGW.N, CGW.URL, CGW.Date, CGW.Year, CGW.Brief
FROM calendar_gw CGW
WHERE CGW.URL = :MyURL
UNION ALL
SELECT 'CGZ' AS Site, CGZ.N, CGZ.URL, CGZ.Date, CGZ.Year, CGZ.Brief
FROM calendar_gz CGZ
WHERE CGZ.URL = :MyURL
UNION ALL
SELECT 'CSL' AS Site, CSL.N, CSL.URL, CSL.Date, CSL.Year, CSL.Brief
FROM calendar_sl CSL
WHERE CSL.URL = :MyURL
ORDER BY Year");
$stm = $pdo->prepare("SELECT 'CGW' AS Site, CGW.N, CGW.URL, CGW.Date, CGW.Year, CGW.Brief
FROM calendar_gw CGW
WHERE CGW.URL = :MyURL
UNION ALL
SELECT 'CGZ' AS Site, CGZ.N, CGZ.URL, CGZ.Date, CGZ.Year, CGZ.Brief
FROM calendar_gz CGZ
WHERE CGZ.URL = :MyURL
UNION ALL
SELECT 'CSL' AS Site, CSL.N, CSL.URL, CSL.Date, CSL.Year, CSL.Brief
FROM calendar_sl CSL
WHERE CSL.URL = :MyURL
ORDER BY Year");