長い投稿で申し訳ありません...ユーザーがstartdate
を
入力するこのフォームがあり、enddate結果は、次のような結果の変数を作成しているPHPファイルに送信されます: PHP
if(isset($_POST['user_selected_dates'])) {
$invoice_startdate = $_POST['start_date'];
$invoice_enddate = $_POST['end_date'];
}
次に、この厄介なMySQLクエリがあります...
SELECT
s.student_socialnr, s.student_lastname, s.student_firstname,
cs.city_name,
c.customer_name,
scp.cpl_startdate, scp.cpl_enddate, scp.cpl_coursename, scp.cpl_pricevalue,
SUM(scpe.scpe_days) AS total_days, scp.cpl_pricevalue * SUM(scpe.scpe_days) AS total_invoice
FROM studentcourseplan scp
INNER JOIN students s ON s.student_id = scp.student_id
INNER JOIN studentcourseplanelements scpe ON scpe.scpe_cpl_id = scp.cpl_id
INNER JOIN cityselections cs ON cs.city_id = s.student_city_id
INNER JOIN customers c ON c.customer_id = s.student_customer_id
WHERE scp.cpl_startdate BETWEEN '$invoice_startdate' AND '$invoice_enddate'
GROUP BY scp.cpl_id ORDER BY s.student_lastname ASC
これは、テーブルに次のようなものを出力します( PHP を使用mysql_fetch_array
):
+------------------+------------------+-------------------+---------------+---------------+---------------+----------------+----------------+------------+---------------+
| student_socialnr | student_lastname | student_firstname | customer_name | cpl_startdate | cpl_enddate | cpl_coursename | cpl_pricevalue | total_days | total_invoice |
+------------------+------------------+-------------------+---------------+---------------+---------------+----------------+----------------+------------+---------------+
| 000000-0000 | Doe | John | A name | 2012-06-01 | 2012-06-30 | A coursename | 620 | 40 | 24800 |
+------------------+------------------+-------------------+---------------+---------------+---------------+----------------+----------------+------------+---------------+
| 000000-0000 | Clerksson | Lisa | A name | 2012-01-05 | 2012-07-30 | A coursename | 950 | 10 | 9500 |
+------------------+------------------+-------------------+---------------+---------------+---------------+----------------+----------------+------------+---------------+
| 000000-0000 | Derpson | Derp | A name | 2012-04-01 | 2012-04-05 | A coursename | 620 | 40 | 24800 |
+------------------+------------------+-------------------+---------------+---------------+---------------+----------------+----------------+------------+---------------+
今、私は次のことを行う関数を探しています:と
の間の日数の値を作成します。この値がより小さい場合、列の結果の値は計算を行います:列* [新しい値の結果] そしてそれをすべての行に出力します (ただし、データベースからの値よりも小さい場合のみ...)おそらく-queryで実行できますか? 私は本当にいくつかの助けを感謝します。これは、PHP と MySQL を使用する初めての Web サイトです。ありがとう。$invoice_startdate
$invoice_enddate
total_days
price_value
MySQL