Php mysql中取值前如何打印合计
我想在while循环之前打印从mysql数据库获取行的总和 我知道我应该先获取行,然后再打印变量。我的问题是,在while循环之前有没有打印变量的方法 我试着这么做Php mysql中取值前如何打印合计,php,mysql,Php,Mysql,我想在while循环之前打印从mysql数据库获取行的总和 我知道我应该先获取行,然后再打印变量。我的问题是,在while循环之前有没有打印变量的方法 我试着这么做 $row=mysqli_fetch_array($projectQuery); 然后打印$row['sum'] 但是这个想法不起作用我的代码不起作用我没有任何结果 $projectQuery=mysqli_query($conn," select project.*,
$row=mysqli_fetch_array($projectQuery);
然后打印$row['sum']
但是这个想法不起作用我的代码不起作用我没有任何结果
$projectQuery=mysqli_query($conn,"
select
project.*,
location.db_lid,
location.db_location as loc,
concat(tr.db_fname,' ',tr.db_lname) as trans,
tr.db_uid,
concat(user.db_fname,' ',user.db_lname) as name,
user.db_uid,
client.db_clientid,
client.db_name as clientname,
department.db_did,
department.db_department as dep,
supplier.db_id,
supplier.db_CompanyName,
sum(activities.db_newtotal) as total
from tbl_project as project
left join tbl_location as location
on
project.db_location=location.db_lid
left join tbl_user as tr
on
project.db_transferredto=tr.db_uid
left join tbl_user as user
on
project.db_user=user.db_uid
left join tbl_client as client
on
project.db_client=client.db_clientid
left join tbl_department as department
on
project.db_department=department.db_did
left join tbl_supplier as supplier
on
project.db_transsub=supplier.db_id
left join tbl_activities as activities
on
project.db_projectid=activities.db_projectname
{$q}
group by project.db_projectid order by project.db_projectid desc
")or die(mysqli_error($conn));
$count=mysqli_num_rows($projectQuery);
if($count!=0){
echo"<h2>You Have $count project </h2>";?>
<div class="table-responsive">
<table class='ol-md-12 table-bordered table-striped table-condensed cf table-bordered' id="alternatecolor">
<thead class='cf'>
<tr>
<th rowspan='2'>#</th>
<th rowspan='2'>Date</th>
<th rowspan='2'>Project</th>
<th rowspan='2'>Location</th>
<th rowspan='2'>Cleint</th>
<th rowspan='2'>Project Manager</th>
<th rowspan='2'>Staff</th>
<th rowspan='2'>Subcontractor</th>
<th rowspan='2'>Company Name</th>
<th rowspan='2'>Department</th>
<th colspan='3'>Planing</th>
<th rowspan='2'>%</th>
<th rowspan='2'>Civil %</th>
<th rowspan='2'>Electrical %</th>
<th rowspan='2'>Mechanical %</th>
<th rowspan='2'>Total Cost</th>
<th rowspan='2'>Note</th>
<th rowspan='2'>Checklist</th>
<th rowspan='2'>Add</th>
<th rowspan='2'>Print</th>
<th rowspan='2'>Status</th>
<th rowspan='2'></th>
<th rowspan='2'>Edit</th>
</tr>
<tr>
<th> Start Date</th>
<th> Due Date</th>
<th >Duration</th>
</tr>
</thead>
<tbody>
<?php
$totalSum=0;
while($row=mysqli_fetch_array($projectQuery)){
$projectid=$row['db_projectid'];
$projectName=$row['db_projectname'];
$location=$row['loc'];
$transferred=$row['trans'];
$psd=$row['db_psd'];
$pdd=$row['db_pdd'];
$duration=$row['db_duration'];
$asd=$row['db_past'];
$add=$row['db_padd'];
$aduration=$row['db_aduration'];
$percent=$row['db_percent'];
$note=$row['db_pnote'];
$staff=$row['name'];
$client=$row['clientname'];
$cPercent=$row['db_cpercentage'];
$ePercent=$row['db_epercentage'];
$mPercent=$row['db_mpercentage'];
$status=$row['db_status'];
$supp=$row['db_CompanyName'];
$companyName=$row['db_companyname'];
$department=$row['dep'];
$clientid=$row['db_clientid'];
$date=$row['db_date'];
$totaCost=$row['total'];
$totalSum+=$row['total'];
?>
在代码的这一部分中,我想打印总和
echo"<h2>You Have $count project </h2>";
代码如下所示
您有$count项目总数$totalSum请尝试下面的代码
$totalSum=0;
$projects = array();
while($row = mysqli_fetch_array($projectQuery)){
$totalSum+=$row['total'];
$projects[] = $row;
}
echo"<h2>You Have $totalSum project </h2>";
foreach($projects AS $project) {
//you can loop through your records here
}
这正是@Chris解释的方法
还有一个建议。在使用变量之前,不需要将每个值赋给变量。相反,您可以直接使用$row['db_projectname']等值,请尝试下面的代码
$totalSum=0;
$projects = array();
while($row = mysqli_fetch_array($projectQuery)){
$totalSum+=$row['total'];
$projects[] = $row;
}
echo"<h2>You Have $totalSum project </h2>";
foreach($projects AS $project) {
//you can loop through your records here
}
这正是@Chris解释的方法
还有一个建议。在使用变量之前,不需要将每个值赋给变量。相反,您可以直接使用$row['db_projectname']这样的值。您想要行数的总和还是什么?我不完全清楚您想要做什么,但我认为您将循环和检索数据与打印数据混淆了。您需要先从数据库中检索数据,然后才能使用它,但此时不需要打印它。将数据存储在一个变量中,然后打印出来。在您迭代整个结果对象之前,这将不可用。@开发人员,不,您不需要创建新的查询。正如我在前面的评论中所说,获取数据和打印数据是不同的事情。你可以取一次,然后按你想要的顺序打印100次。但是你的循环除了分配一堆变量之外似乎什么都不做。我猜它是不完整的?有什么理由需要在循环之前输出吗?我猜你是在这个循环中输出的?如果是这样的话,我不会那么做。使用循环构建数据,然后在脚本中稍后进行输出。您想要行数的总和还是什么?我不完全清楚您想要做什么,但我认为您将循环和检索数据与打印数据混淆了。您需要先从数据库中检索数据,然后才能使用它,但此时不需要打印它。将数据存储在一个变量中,然后打印出来。在您迭代整个结果对象之前,这将不可用。@开发人员,不,您不需要创建新的查询。正如我在前面的评论中所说,获取数据和打印数据是不同的事情。你可以取一次,然后按你想要的顺序打印100次。但是你的循环除了分配一堆变量之外似乎什么都不做。我猜它是不完整的?有什么理由需要在循环之前输出吗?我猜你是在这个循环中输出的?如果是这样的话,我不会那么做。使用循环构建数据,然后在脚本中稍后进行输出。