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控除を引き出すループで2 番目の 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 に答える