Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    215

    [mysql] Estrarre dati in base a numero di righe ripetute

    Ciao a tutti
    ho una tabella in mysql chiamata "cassa" dove ogni volta inserisco i prodotti venduti, la quantità e la data di vendita cosi composta:

    BARCODE | PRODOTTO | QUANTITA | DATA
    12345 | prodotto X | 1 | 01/01/2023
    56789 | prodotto Y | 1 | 01/01/2023
    12345 | prodotto X | 1 | 02/01/2023
    56789 | prodotto Y | 1 | 02/01/2023
    12345 | prodotto X | 1 | 03/01/2023
    56789 | prodotto Y | 1 | 03/01/2023
    12345 | prodotto X | 1 | 04/01/2023
    12345 | prodotto X | 2 | 04/01/2023

    Siccome sto facendo uno script in PHP per vedere i prodotti più venduti ho un problema, non riesco ad ordinare in base alla quantità totale venduta per un determinato barcode.

    nell'esempio sopra ho venduto il barcode 12345 per 5 volte e il 56789 per 3 volte
    in pratica mi servirebbe che la query mysql che uso nel ciclo while di php che estragga il barcode ordinato per il numero maggiore di righe dello stesso barcode ma non so come fare.
    (spero si capisca)

    adesso faccio cosi:
    Codice PHP:

    $hot_sale
    "SELECT * FROM _cassa";
    if (
    $hot_sale mysqli_query($conn$hot_sale)) {
        while (
    $row mysqli_fetch_assoc($hot_sale)) {            
    $barcode $row["barcode"];      
    $prodotto $row["prodotto"];  
       
              
    // conteggi barcode più venduti
                  
    $quantita '0';               
     
    $query_conteggi"SELECT * FROM _cassa WHERE barcode = '$barcode'";
                        if (
    $result_conteggi mysqli_query($conn$query_conteggi)) {
                        while (
    $row mysqli_fetch_assoc($result_conteggi)) {                              
                      
    $quantita $quantita $row["quantita"];
                    }         
    mysqli_free_result($result_conteggi);               
    }
            
    // fine barcode più venduti
       
    echo "$quantita | $barcode  | $prodotto <br><br>";        
    }
      
    mysqli_free_result($hot_sale);


  2. #2
    fa' fare il lavoro sporco a sql, usando COUNT() e GROUP BY()

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    215
    grazie!!! proprio quello che cercavo, immaginavo ci fosse qualcosa in mysql di simile ma da autodidatta non riuscivo a trovare il modo di formulare la query

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    215
    $hot_sale= "SELECT barcode, COUNT(*) FROM _cassa GROUP BY barcode ORDER BY COUNT(*) DESC";

    perfetto!!

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.