gpt4 book ai didi

php - 如何使用 php 在按名称分组的表中显示 sql 结果

转载 作者:行者123 更新时间:2023-11-30 23:05:01 25 4
gpt4 key购买 nike

我们得到了一个学校项目,但我不知道如何去做。所以问题是我们要为企业建立一个数据库;我们是一家美容院。我现在的问题是如何在表格中显示来自查询的数据。

我看过之前的帖子,似乎是一个答案,但我不知道它对我的情况到底有什么用

stackoverflow question: group query results in php

所以我这里有当前结果和我希望它看起来像的要点。基本上我希望员工姓名跨越多行,等于他们提供的服务数量。

enter image description here

这是我目前的代码:

<?php 
if (isset($_POST['submit']) && $error == '') {
echo "<table width='auto' border='1' class='center'>
<tr>
<th scope='col'>Transaction No.</th>
<th scope='col'>Service Name</th>
<th scope='col'>Employee Name</th>
<th scope='col'>Date</th>
<th scope='col'>Adjusted Price </th>
<th scope='col'>Adjusted Cost </th>
<th scope='col'>Adjusted Parlor Dividend</th>
<th scope='col'>Adjusted Employee Dividend</th>
</tr>";
$res=mysqli_query($con, "SELECT serviceline.transnum, servicelist.srvnam, employeelist.empname, serviceline.transdate, serviceline.priceadj, serviceline.costadj, serviceline.pardivadj, servicelist.price, serviceline.empdivadj, servicelist.cost, servicelist.pardiv, servicelist.empdiv FROM EmployeeList INNER JOIN (ServiceList INNER JOIN ServiceLine ON ServiceList.SrvID = ServiceLine.SrvID) ON EmployeeList.EmpID = ServiceLine.EmpID WHERE DATE(serviceline.transdate) BETWEEN '".$fyear."-".$fmon."-01' AND '".$tyear."-".$tmon."-31'");
while($ent=mysqli_fetch_array($res))
{
$adjprc=$ent['priceadj']+$ent['price'];
$adjcst=$ent['costadj']+$ent['cost'];
$adjpardiv=$ent['pardivadj']+$ent['pardiv'];
$adjempdiv=$ent['empdivadj']+$ent['empdiv'];
echo "<tr>
<th scope='row' e>".$ent['transnum']."</th>
<td>".$ent['srvnam']."</td>
<td>".$ent['empname']."</td>
<td>".$ent['transdate']."</td>
<td>Php ".number_format($adjprc, 2, '.', '')."</td>
<td>Php ".number_format($adjcst, 2, '.', '')."</td>
<td>Php ".number_format($adjpardiv, 2, '.', '')."</td>
<td>Php ".number_format($adjempdiv, 2, '.', '')."</td>
</tr>
";}
echo "</table>";
}
mysqli_close($con);
?>

提前致谢。

最佳答案

如果你想像你当前的代码一样在一个表中完成,你需要将 rowspan=xx 添加到单元格,这意味着你需要知道每个名称的行数,因此您必须将带有 COUNT() 的子查询添加到您当前的查询中。

或者,您可以使用嵌套表格。所以你有一个主表,每行有两个单元格,一个用于名称,另一个具有用于所有其他字段的嵌套表。像这样的东西:

$last_emp="";
while($ent=mysqli_fetch_array($res))
{
$adjprc=$ent['priceadj']+$ent['price'];
$adjcst=$ent['costadj']+$ent['cost'];
$adjpardiv=$ent['pardivadj']+$ent['pardiv'];
$adjempdiv=$ent['empdivadj']+$ent['empdiv'];

if($last_emp != $ent['empname'])
{
if($last_emp != "")
{
echo "</table><td/></tr>";
}
echo "<tr>
<td>".$ent['empname']."</td>
<td><table>";
}
echo "<tr>";
<td>".$ent['transdate']."</td>
<td>Php ".number_format($adjprc, 2, '.', '')."</td>
<td>Php ".number_format($adjcst, 2, '.', '')."</td>
<td>Php ".number_format($adjpardiv, 2, '.', '')."</td>
<td>Php ".number_format($adjempdiv, 2, '.', '')."</td>
</tr>
if($last_emp != $ent['empname'])
{
$last_emp = $ent['empname'];
}
}

关于php - 如何使用 php 在按名称分组的表中显示 sql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com