从数据库中汇总数据后输出错误

时间:2013-09-02 09:01:30

标签: php mysql

假设我要总结休假表中的持续时间,条件是Leave_Type ='年度'和状态='已批准'

我的数据库

table leave
{Leave_ID(PK), Leave_Type, Status, Duration, Emp_ID(FK)}

table employee
{Emp_ID(PK), Emp_Name}

我使用以下代码对持续时间

求和
$aid=$_SESSION["eid"];

$Annual = mysql_query("select SUM(Duration)

FROM `leave`

WHERE leave.Leave_Type = 'Annual' and leave.Status = 'Approved' 
and leave.Emp_ID = employee.Emp_ID and leave.Emp_ID = $aid");

我显示输出的方式

<td><?php echo $Annual;?></td>

但我获得的输出类似于“资源ID#4”。这不是我想要的输出,它应该是持续时间的总和。 mysql_query或我打印输出的方式有问题吗?

4 个答案:

答案 0 :(得分:1)

输出错误了!

$AnnualData = mysql_fetch_assoc($Annual);

比输出:

<td><?php echo $AnnualData['SUM(Duration)'];?></td>

如果需要,可以像这样在sum语句中添加一个别名(在sql查询中):

SUM(Duration) AS total

并且输出如下:

<td><?php echo $AnnualData['total'];?></td>

答案 1 :(得分:0)

您只运行查询,需要获取数据。

将mysql_query更改为mysqli_query(前一个已弃用),然后使用mysqli_fetch_assoc($Annual)

答案 2 :(得分:0)

你应该添加;

$annual2 = mysql_fetch_array($annual);

然后

<?PHP echo $annual2['Duration']; ?>

希望这会有所帮助:)

答案 3 :(得分:0)

$query=mysql_fetch_array($Annual);

echo $query[0];

它会打印你想要的......