pdo - mysql join two tables select and records problems -
i want show below info onto webpage :
date - personal expense (business expense)
06-june-2012 - usd555.00 (usd3022.00)
05-june-2012 - usd666.00 (usd0.00)
04-june-2012 - usd0.00 (usd444.40)
04-june-2012 - usd333.00 (usd2333.40)
currently code :
$sql = "select payment_date, sum(price) expense category=? spender_id=? group 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 />"; }
i don't know how select , display business expense record , show blanket sign (). idea?
you should provide more details in regards table schema, think can infer query it's this:
expense(payment_id [pk], spender_id [fk], category [fk??], price, payment_date)
where category field contains either "personal" or "expense".
so if want sum of both personal , business expense particular spender each date, try query:
select payment_date, sum(if(category = 'personal', price, 0)) personal_expense_total, sum(if(category = 'business', price, 0)) business_expense_total expense spender_id = ? group payment_date
so in php code, can this:
$sql = ' select payment_date, sum(if(category = "personal", price, 0)) personal_expense_total, sum(if(category = "business", price, 0)) business_expense_total expense spender_id = :spender_id group payment_date'; $stmt = $conn->prepare($sql); $stmt->bindparam(':spender_id', $user_id, pdo::param_int); // assuming $user_id contains 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 />"; }
Comments
Post a Comment