第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何使用 Laravel Eloquent 獲取上個(gè)月的總網(wǎng)頁瀏覽量

如何使用 Laravel Eloquent 獲取上個(gè)月的總網(wǎng)頁瀏覽量

PHP
qq_笑_17 2024-01-19 15:09:57
我有這個(gè) post_views 表created_at         post_id       ip==========         =======       =======01-01-2020            3            127.0.0.101-01 2020            5            127.0.0.102-01 2020            5            127.0.0.103-01 2020            5            222.33.44.5506-02 2020            3            222.33.44.5506-02 2020            3            127.0.0.110-02 2020            5            33.44.55.6602-03 2020            3            22.33.65.2202-03 2020            3            22.33.65.2202-03 2020            5            11.44.55.66我需要使用此表對(duì)每天的訪問量進(jìn)行求和以獲得過去 3 個(gè)月的總網(wǎng)頁瀏覽量,我的意思是結(jié)果:January= 3 visitsFebruary = 3 visitsMarch = 2 visits
查看完整描述

2 回答

?
開滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

希望這樣的事情能夠幫助你。


在你的Post模型內(nèi)部:


public function getLastThreeMonthViewsByIP($ip)

{

    $data = [];


    // loop 3 months

    for ($i = -3; $i < 0; $i++)

    {

        $timestamp = strtotime("$i month");

        

        $monthNumber = date('n', $timestamp);


        // from this post

        $result = $this->views()

            // in this month

            ->whereMonth('created_at', $monthNumber)

            // from this ip

            ->where('ip', $ip)

            // group IP

            ->groupBy('ip')

            // count all

            ->selectRaw('count(*) AS total')

            // and return first 

            ->first();


        // if there are any results, add to data

        if ($result)

        {

            $monthName = date('F', $timestamp);


            $data[] = [

                'monthNumber' => $monthNumber,

                'monthName' => $monthName,

                'total' => $result->total,

            ];

        }

    }


    return $data;

}


查看完整回答
反對(duì) 回復(fù) 2024-01-19
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

您可以運(yùn)行下一個(gè) SQL 查詢來生成此信息:


SELECT month, count(*) AS total

FROM (

    SELECT DATE_FORMAT(created_at, '%Y-%m') AS month

    FROM post_views

    GROUP BY month, ip

) AS calculated

GROUP BY month;


結(jié)果:


2020-01, 3

2020-02, 3

2020-03, 2

要使其與 Laravel 一起使用:


$result = DB::raw("

    SELECT month, count(*) AS total

    FROM (

        SELECT DATE_FORMAT(created_at, '%Y-%m') AS month

        FROM `post_views`

        WHERE `created_at` >= DATE_FORMAT(now() - interval ? month, '%Y-%m-01') 

        GROUP BY DATE_FORMAT(`created_at`, '%Y-%m'), ip

    ) AS calculated

    GROUP BY `month`

", [3]); // last 3 months


dd($result); // to see results


希望有幫助!


查看完整回答
反對(duì) 回復(fù) 2024-01-19
  • 2 回答
  • 0 關(guān)注
  • 172 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)