0

Standard_Code と Report と Transactions の 3 つのテーブルがあるとします。

Standard_Codeテーブルのフィールド名: Code

     値は次のとおりです: Opening_Balance、Ending_Balance、Actual_Remaining_Balance

レポートテーブルのフィールド名: Opening_Balance、Ending_Balance、Actual_Remaining_Balance

なぜこのような複製を行うのかと思うかもしれません。「Standard_Code」テーブルには行の値があるため、技術的には異なりますが、私の「レポート」ではそれらは列であり、固定されており、変更できません。

$sql = "Select t.code, t.amount From Transactions t Inner Join Standard_Code sc on t.code = sc.code";

$result = mysql_query($sql);

while($row = mysql_fetch_assoc($result)) {

    foreach ($row as $col => $val) {
        echo $col." = ".$val."<br />";        
}

sqlQuery = "レポート セットの更新 '" . フィールド名. "' = " . ;

}

おそらく、while または foreach ループ中に、このクエリを実行して Report テーブルを更新する方法は次のとおりです。

fieldname : CodeStandard_Code テーブルの値 (ここの値は Report テーブルの実際のフィールド名です)

: トランザクション テーブルから:Amount

どちらも、私の要件に基づいて作業する方法がわかりません。

私の理由:値の配置/書式設定などについて特別にレポートを処理する特別な要件があります。要するに、レポートは複雑であるため、レポート データを簡単に書式設定できるようにカスタム レポート テーブルを作成しました。

4

2 に答える 2

1
$sql = "Select t.code, t.amount From Transactions t Inner Join Standard_Code sc on t.code = sc.code";

$result = mysql_query($sql);
$q = array();

while($row = mysql_fetch_assoc($result)) {
  $q[] = $row['code'].' = '.$row['amount'];    
}
// UPDATE report SET Opening_Balance = 2, Ending_Balance = 2, Actual_Remaining_Balance = 2
mysql_query('UPDATE Report SET '.join(', ', $q));
于 2013-02-20T08:13:13.973 に答える
0

codeトランザクションをループするときに、各タイプの合計を更新したいので、あなたのケースを理解しています。これは私のコードです ( mysql_API を使用する必要はありません。代わりにPDOを使用します)。

$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password');

$stmt = $db->prepare("Select t.code, t.amount From Transactions t Inner Join Standard_Code sc on t.code = sc.code");
if ($stmt->exectute())
{
    $rows = $stmt->fetchAll();
    foreach($rows as $row)
    {
        $stmt = "Update Report Set `" . $row['code'] . "` = `" . $row['code'] . "` + :val";   
        $stmt->bindValue(":val", $row['amount']);
        $stmt->execute();
    }
}

この場合、テーブルには1reportしかありません。このコードを変更して、古いレコードを更新する代わりに新しい行を挿入することもできます。ただし、このアプローチを使用する場合は、追加の主キー列が必要です。

于 2013-02-20T11:20:17.993 に答える