0

我正在尝试使用 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>');

对于提到的部分,我需要不同查询的结果。是否可以?最好的解决方案?

4

1 回答 1

1

您可以在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
}
于 2012-05-04T18:20:56.127 回答