我正在尝试使用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>');
对于提到的部分,我需要不同查询的结果。可能吗?最好的解决方案?
答案 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
}