[英]mysql Union query return the same column name in php array
我写了一个代码,用联合从Mysql数据库中获取数据,以便从不同的表中选择多个数据,结果还可以,但是列名是相同的。
<?php
$objConnect = mysql_connect("localhost","xxxxx","xxxxx") or die(mysql_error());
$objDB = mysql_select_db("musicstore");
$strSQL = "select count(song_Id) as 'cnts' from song where date_rel = CURDATE()
union select count(album_id) as 'cnta' from album ";
$objQuery = mysql_query($strSQL) or die (mysql_error());
$intNumField = mysql_num_fields($objQuery);
$resultArray = array();
while($obResult = mysql_fetch_array($objQuery))
{
$arrCol = array();
for($i=0;$i<$intNumField;$i++)
{
$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
}
array_push($resultArray,$arrCol);
}
mysql_close($objConnect);
echo json_encode($resultArray);
?>
结果是[{"cnts":"38"},{"cnts":"3"}]
我不知道为什么它没有从定义的名称中获取列名称
添加虚拟列以实现此目的。
$strSQL = " select count(song_Id) as 'cnts', 'cnta' from song where date_rel = CURDATE()
union select 'cnta', count(album_id) as 'cnta' from album " ;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.