使用 PHP 和 SQL 创建多语句动态表


Creating a Multi-Statement Dynamic Table Using PHP and SQL

我正在尝试使用 PHP 构建一个动态表,将 MSSQL 数据库中的数据插入到我正在构建的站点的页面中。 每个可见行代表一份单独的薪水。 每行下方是与之关联的详细信息。 这对于税收来说很容易,因为每次检查的数据都保存在主表行中。 现在我需要添加扣除额,问题是,对于每个支票号码,我都会得到多行详细扣除额。

我可以在 While 循环中切换 SQL 语句,然后在完成后切换回原始语句吗?

或者这是针对某种其他类型的SQL魔法的令人困惑的外部连接的工作......

这是我现在拥有的代码示例。

  while ($row = mssql_fetch_array($rs))
  {
      $paychecknum =$row['check_no'];
      $paycheckdate=$row['check_date'];
      $netpay=$row['check_amount'];
      $grosspay=$row['gross_pay'];
      $tax=$row['taxes'];
      $deductions=$row['deductions'];
      $fit=$row['fit'];
      $lit=$row['lit'];
      $sit=$row['sit'];
      $fica=$row['fica'];
    echo('<div class="row">');
    echo('<div class="cell">Check Date:');
    echo $paycheckdate;
    echo('</div>');
    echo('<div class="cell">Check Number: ');
    echo $paychecknum;
    echo('</div>');
    echo('<div class="cell">Gross Pay: ');
    echo $grosspay;
    echo('</div>');
    echo('<div class="cell clickable"  onClick="showAmount('.$paychecknum.')"> Taxes: ');
    echo $tax;
    echo('</div>');
    echo('<div class="cell clickable" onClick="showAmount(1'.$paychecknum.')">Deductions: ');
    echo $deductions;
    echo('</div>');
    echo('<div class="cell">Net Pay: ');
    echo $netpay;
    echo('</div>');
    echo('</div>');
    echo('<div class="row hidden" id="'.$paychecknum.'">');
    echo('<div class="cell">Federal Income Tax: ');
    echo $fit;
    echo('</div>');
    echo('<div class="cell">Local Income Tax:  ');
    echo $lit;
    echo('</div>');
    echo('<div class="cell">State Income Tax:  ');
    echo $sit;
    echo('</div>');
    echo('<div class="cell">FICA:  ');
    echo $fica;
    echo('</div>');
    echo ('</div>');
    echo ('<div class="row hidden" id="1'.$paychecknum.'">');
####    echo('<div> Deductions go here');   ######Where I need my details###
    echo('</div>');
    echo ('</div>');

对于上述部分,我需要不同查询的结果。 可能吗? 最好的解决方案?

您可以在while循环中执行第二个 SQL 查询,以提取扣除额。

例:

$sql1 = "select * from checks";
$result1 = mysql_query($sql1);
while($data1 = mysql_fetch_assoc($result1)){
    // output data
    $sql2 = "select * from deductions where check_id='" . $data1['check_id'] . "'";
    $result2 = mysql_query($sql2);
    while($data2 = mysql_fetch_assoc($result2)){
        //output deduction data
    }
    // output remaining info
}