Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php

Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php

藏色散人
藏色散人asal
2022-11-04 09:48:561694semak imbas

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.

Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php

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:

4:2 🎜>25397EAD217C0533455EECDDE39659ABCDAE917.902017-04-01 22:15:>2017-04-2017:>Pada masa ini, bagaimana untuk menanyakan bilangan pesanan yang dibuat pada setiap hari dalam bulan tertentu dan jumlah keseluruhan?
order_id order_sn jumlah_harga tarikh masuk
25396 A4E610E250C2D378D7EC94179E14617F 2306.00
25398 032E6941DAD44F29651B53C41F6B48A0 163.03 2017-07:>


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:

SQL ini mudah, tetapi ia memerlukan 30 pertanyaan setiap kali, yang secara serius memperlahankan masa tindak balas.
$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.&#39;-&#39;.$month.&#39;-&#39;.$val.&#39; 00:00:00&#39;;
  $max = $year.&#39;-&#39;.$month.&#39;-&#39;.$val.&#39; 23:59:59&#39;;
  $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_formatgroup by

Dengan cara ini, 30 pertanyaan dikurangkan kepada 1, dan masa respons akan dipertingkatkan dengan sangat baik.
$month = &#39;04&#39;;
$year = &#39;2017&#39;;
$max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year);   //当月最后一天
$min = $year.&#39;-&#39;.$month.&#39;-01 00:00:00&#39;;
$max = $year.&#39;-&#39;.$month.&#39;-&#39;.$max_day.&#39; 23:59:59&#39;;
$sql = "select t.enterdate,count(*) as total_num,sum(t.total_price) as amount (select date_format(enterdate,&#39;%e&#39;) 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);

Nota:

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 PHP

"

Atas 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn