Cara untuk menanyakan pangkalan data dalam tempoh masa dalam PHP: 1. Gunakan fungsi "date_format" mysql untuk mengetahui terlebih dahulu semua pesanan bulan semasa dalam subquery 2. Gunakan "date_format " berfungsi untuk menukar tarikh masuk kepada hari; 3. Hanya "kumpulan mengikut" statistik kumpulan mengikut hari.
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php?
Contoh pelaksanaan PHP MySQL untuk mengoptimumkan statistik data harian dalam tempoh masa
Dalam projek Internet, analisis data projek adalah penting. Biasanya, trend jumlah perubahan data harian dalam tempoh masa tertentu dikira untuk menyesuaikan strategi pemasaran. Mari kita lihat kes berikut.
Kes
Biasanya terdapat borang pesanan dalam platform e-dagang untuk merekodkan semua maklumat pesanan. Sekarang kita perlu mengira bilangan pesanan dan jumlah jualan setiap hari dalam bulan tertentu untuk melukis carta statistik berikut untuk analisis data.
Struktur data jadual pesanan adalah seperti berikut:
order_id | order_sn | jumlah_harga | tarikh masuk |
---|---|---|---|
25396 | A4E610E250C2D378D7EC94179E14617F | 2306.00 | 4:2 🎜>25397 |
17.90 | 2017-04-01 22:15:> | ||
25398 | 032E6941DAD44F29651B53C41F6B48A0 | 163.03 | 2017-07:> | 2017-04-2017:>
Kaedah umumCara pertama dan paling mudah untuk difikirkan ialah menggunakan fungsi php
untuk mendapatkan nombor hari dalam bulan, dan kemudian bina Tatasusunan semua hari dalam bulan itu, dan kemudian tanya jumlah bilangan setiap hari dalam gelung untuk membina tatasusunan baharu.cal_days_in_month()
Kodnya adalah seperti berikut:
$month = '04'; $year = '2017'; $max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year); //当月最后一天 //构造每天的数组 $days_arr = array(); for($i=1;$i<=$max_day;$i++){ array_push($days_arr, $i); } $return = array(); //查询 foreach ($days_arr as $val){ $min = $year.'-'.$month.'-'.$val.' 00:00:00'; $max = $year.'-'.$month.'-'.$val.' 23:59:59'; $sql = "select count(*) as total_num,sum(`total_price`) as amount from `orders` where `enterdate` >= {$min} and `enterdate` <= {$max}"; $return[] = mysqli_query($sql); } return $return;
PengoptimumanBagaimana cara menggunakan sql untuk menanyakan terus jumlah kuantiti setiap hari?
Pada masa ini, anda perlu menggunakan fungsi
mysql untuk mengetahui terlebih dahulu semua pesanan bulan semasa dalam subquery, menukar enterdate kepada hari menggunakan fungsi date_format, dan kemudian statistik kumpulan mengikut hari. Kodnya adalah seperti berikut: date_format
group by
$month = '04'; $year = '2017'; $max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year); //当月最后一天 $min = $year.'-'.$month.'-01 00:00:00'; $max = $year.'-'.$month.'-'.$max_day.' 23:59:59'; $sql = "select t.enterdate,count(*) as total_num,sum(t.total_price) as amount (select date_format(enterdate,'%e') as enterdate,total_price from orders where enterdate between {$min} and {$max}) t group by t.enterdate order by t.enterdate"; $return = mysqli_query($sql);
1 Memandangkan semua data bulan semasa perlu disoal, kaedah ini tidak sesuai apabila jumlah data terlalu besar.
2. Untuk mengelakkan kehilangan data yang disebabkan oleh tiada data pada hari tersebut, selepas membuat pertanyaan, data hendaklah diproses mengikut keperluan.
Pembelajaran yang disyorkan: "
Tutorial Video PHPAtas ialah kandungan terperinci Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!