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

时间:2012-05-04 18:10:54

标签: php sql

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

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

或者这是一个其他类型的SQL Wizardry令人困惑的外部联接的工作....

以下是我现在的代码示例。

  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>');

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

1 个答案:

答案 0 :(得分: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
}