0


以下の情報を自分の Web ページに表示したいと考えています
。-2012 年 - 0.00 米ドル (444.40 米ドル) 2012 年 6 月 4 日 - 333.00 米ドル (2333.40 米ドル)



現在、私のコードは次のとおりです。

$sql = "SELECT payment_date, sum(price) FROM expense WHERE category=? spender_id=? GROUP BY payment_date";
    $q = $conn->prepare($sql);
    $result = $q->execute(array("Personal", $user_id));
    while($r = $q->fetch(PDO::FETCH_ASSOC)){
        $payment_date_db = $r['payment_date'];
        $payment_date_db2 = date("d-F-Y", strtotime($payment_date_db));
        $price_db = $r['sum(price)'];

        echo $payment_date_db2 . " - " . $money_currency . $price_db . "<br />";
    }

経費精算書を選択して表示し、ブランケットサイン()に表示する方法がわかりません。何か案が?

4

1 に答える 1

1

テーブル スキーマに関してもっと詳細を提供する必要がありますが、クエリから次のようなものであると推測できると思います。

費用(支払いID [PK]、支出者ID [FK]、カテゴリ[FK??]、価格、支払い日)

カテゴリ フィールドに「個人」または「経費」が含まれている場合。

したがって、各日付の特定の支出者の個人的な支出とビジネス上の支出の合計を取得する場合は、次のクエリを試してください。

SELECT 
    payment_date,
    SUM(IF(category = 'Personal', price, 0)) AS personal_expense_total,
    SUM(IF(category = 'Business', price, 0)) AS business_expense_total
FROM 
    expense
WHERE 
    spender_id = ?
GROUP BY 
    payment_date

したがって、PHP コードでは、次のようにすることができます。

$sql = '
    SELECT
        payment_date,
        SUM(IF(category = "Personal", price, 0)) AS personal_expense_total,
        SUM(IF(category = "Business", price, 0)) AS business_expense_total
    FROM expense
    WHERE spender_id = :spender_id
    GROUP BY payment_date';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':spender_id', $user_id, PDO::PARAM_INT); // Assuming $user_id contains an integer
$stmt->execute();

while($r = $stmt->fetch(PDO::FETCH_ASSOC))
{
    $date = date('d-F-Y', strtotime($r['payment_date']));
    $personal = 'usd' . number_format($r['personal_expense_total'], 2);
    $business = 'usd' . number_format($r['business_expense_total'], 2);

    echo "$date - $personal - ($business)<br />";
}
于 2012-06-10T18:50:17.537 に答える