CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

18 May, 2022

multiple orderby sorting with pagination in laravel not working

 Programing Coderfunda     May 18, 2022     Laravel, php     No comments   

 I wrote the code snippet inside my Laravel controller and I want to sort the products by product number first and then sort the previously sorted products by inventory. My problem is that the first sort is executed inside the written command but the second sort does not happen. My code snippet is as follows:

DB::statement("SET SQL_MODE=''");//this is for fix groupby error!
        $productdetail = Sa_product::leftJoin('sa_product_allproperties', 'sa_products.productid', 'sa_product_allproperties.product_id')->where('sa_products.product_status', '1');
        if (isset($data['static']) && $data['static']['search_products'] != '') {
            $search_word = $data['static']['search_products'];
            DB::statement("SET SQL_MODE=''");//this is for fix groupby error!
            $exploded_word = explode(',', $search_word);
            $counter = 0;
            $productdetail = $productdetail->where(function ($q) use ($exploded_word, $counter) {
                $counter = 0;
                foreach ($exploded_word as $word) {
                    if ($counter == 0) {
                        $q->where('sa_products.title', 'LIKE', "%{$word}%");
                    } else {
                        $q->orwhere('sa_products.title', 'LIKE', "%{$word}%");
                    }
                    $counter++;
                }
            });

        }
        $data['staticcats'] = explode(',', $data['static']['product_cats']);
        if (isset($data['static']) && $data['static'] != '') {
            $explodecats = explode(',', $data['static']['product_cats']);
            unset($explodecats[0]);
            array_pop($explodecats);
        } else {
            $explodecats = [];
        }
        if (isset($explodecats) && $explodecats != []) {
            $counter = 0;
            $productdetail = $productdetail->where(function ($q1) use ($explodecats, $counter) {
                $counter = 0;
                foreach ($explodecats as $cats) {
                    if ($counter == 0) {
                        $q1->where('sa_products.catid', 'LIKE', "%,{$cats},%");
                    } else {
                        $q1->orWhere('sa_products.catid', 'LIKE', "%,{$cats},%");
                    }
                    $counter++;
                }
            });
            $productdetail = $productdetail->orderBy('visited_counter', 'DESC');
        }
        $data['staticcats'] = explode(',', $data['static']['product_brands']);
        if (isset($data['static']) && $data['static'] != '') {
            $explodebrands = explode(',', $data['static']['product_brands']);
            unset($explodebrands[0]);
            array_pop($explodebrands);
        } else {
            $explodebrands = [];
        }
        if (isset($explodebrands) && $explodebrands != []) {
            $counter = 0;
            $productdetail = $productdetail->where(function ($q2) use ($explodebrands, $counter) {
                $counter = 0;
                foreach ($explodebrands as $brands) {
                    if ($counter == 0) {
                        //$q1->where('brand_id','LIKE', "%,{$brands},%");
                        $q2->where('sa_products.brand_id', "{$brands}");
                    } else {
                        //$q1->orWhere('brand_id','LIKE', "%,{$brands},%");
                        $q2->orWhere('sa_products.brand_id', "{$brands}");
                    }
                    $counter++;
                }
            });
        }
        $productdetail = $productdetail->orderBy('sa_products.productid','DESC')->orderBy('sa_product_allproperties.stock_count','DESC')->groupBy('sa_products.productid')->paginate(20);
        if (isset($productdetail) && $productdetail->count()>0)
        {
            $data['searched_products'] = $productdetail;
        }

After executing the above code, the received products are sorted by product number, ie the orderBy('sa_products.productid', 'DESC') occurs, but the second sorting is done with the orderBy('sa_product_allproperties.stock_count', 'DESC') Which is not run for inventory sorting.

Can anyone help me solve this problem?

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • View your routes through the browser with the Pretty Routes package One nice Laravel feature is its routing, by visiting your routing file, you can get an eagle eye view of your application and a map that shows w… Read More
  • Laravel Uptime Monitor The internet has become indispensable and the revenue source for a lot of people. It’s not acceptable for most web apps to be down even for a fe… Read More
  • Laravel Missing Page Redirector PackageIf you moved your site to a new domain, chances are you want the users and search engines to be directed to the correct pages on the new domain.One wa… Read More
  • Laravel Charting Package Creating charts is often a pain because of how you have to convert your data into what the charting library supports and each library is differe… Read More
  • Laravel Blade SVG Directive Using SVG’s in your design is all the rage and for good reason. They can be resized to any size without becoming pixelated, you can reference th… Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Vue3 :style backgroundImage not working with require
    I'm trying to migrate a Vue 2 project to Vue 3. In Vue 2 I used v-bind style as follow: In Vue 3 this doesn't work... I tried a...
  • SQL ORDER BY Keyword
      The SQL ORDER BY Keyword The ORDER BY keyword is used to sort the result-set in ascending or descending order. The ORDER BY keyword sorts ...
  • Enabling authentication in swagger
    I created a asp.net core empty project running on .net6. I am coming across an issue when I am trying to enable authentication in swagger. S...
  • failed to load storage framework cache laravel excel
       User the export file and controller function  ..         libxml_use_internal_errors ( true ); ..Good To Go   public function view () : ...
  • Features CodeIgniter
    Features CodeIgniter There is a great demand for the CodeIgniter framework in PHP developers because of its features and multiple advan...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Clean Up Your Code with the whenHas Method - 6/5/2025
  • Laravel OpenRouter - 6/4/2025
  • Enable Flexible Pattern Matching with Laravel's Case-Insensitive Str::is Method - 5/31/2025
  • Cast Model Properties to a Uri Instance in 12.17 - 6/4/2025
  • Simplify Negative Relation Queries with Laravel's whereDoesntHaveRelation Methods - 5/31/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda