Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57

    query selezione mese da db Mysql

    Ciao a tutti ragazzi!
    Devo sommare tutti i prezzi di un determinato mese.
    Dovrebbe essere giusta ma il compilatore mi dice che non va bene.
    Codice PHP:
    <?php
        $month
    =$_POST['month'];    if($month=="January"){        $month="01";    }    if($month=="February"){        $month="02";    }    if($month=="March"){        $month="03";    }    if($month=="April"){        $month="04";    }    if($month=="May"){        $month="05";    }    if($month=="June"){        $month="06";    }    if($month=="July"){        $month="07";    }    if($month=="August"){        $month="08";    }    if($month=="September"){        $month="09";    }    if($month=="October"){        $month="10";    }    if($month=="November"){        $month="11";    }    if($month=="December"){        $month="12";    }        
    //Connection
            
    $link mysql_connect('localhost''xxx''xxx');    
          if (!
    $link) { die('Could not connect: ' mysql_error()); }        
    //Select DB       
     
    mysql_select_db(my_idnob) or die ("Error in selection database ".mysql_error());       

     
    $query="SELECT SUM(price) as totalmonth FROM clothes WHERE MONTH(date) ="$month;

            
    $result mysql_query($query) or die ("error in query ".mysql_error());    list($totalmonth) = mysql_fetch_array($result);    print $totalmonth;
    ?>
    Idee?
    Grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57
    Quote Originariamente inviata da darkhero Visualizza il messaggio
    prova la query così:

    codice:
    $query="SELECT SUM(price) as totalmonth FROM clothes WHERE MONTH(date) =".$month."";
    
    


    Gentilissimo, appena ries o provo poi ti dico.
    grazie mille!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57
    Purtroppo non va:
    "error in query You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

  4. #4
    Scrivi la riga con la query così:

    Codice PHP:

    $query
    ="SELECT SUM(price) as totalmonth FROM clothes WHERE MONTH(datee)='".$month."'"
    Attenzione a 3 cose:
    1. il nome del campo date (nome riservato) va cambiato con un altro nome (tipo datee) oppure racchiuso in apici di questo tipo: `
    2. il campo date deve essere di tipo datetime o date, se no la funzione month non funzionerebbe.
    3. Questa query effettua una somma su tutti i mesi pari a $month, il che significa che calcola anche anni precedenti a quello attuale. Se vuoi essere preciso e ottenere solo il mese dell'anno in corso devi aggiungere AND YEAR(datee)=YEAR(NOW())

  5. #5
    Codice PHP:
    $query "SELECT SUM(price) as totalmonth FROM clothes WHERE MONTH(date) = '$month'"
    Non hai detto di che tipo è il campo date? Inoltre basterebbe buttare un occhio al manuale, questo sconosciuto, per notare che la funzione MONTH() restituisce il mese senza lo zero davanti per cui quando valorizzi la variabile $month devi farlo senza lo zero!
    Inoltre in nome date è riservato.

    MONTH()
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    57
    Perfetto grazie mille
    Funziona tutto , il problema è che mi da sempre lo stesso numero 24?! provando a mettere un mese in cui c'è un solo record (e non è 24) esce sempre 24, provando qualsiasi mese.

  7. #7
    Se la query funziona evidentemente la somma dei campi price per quel mese è 24 altrimenti c'è un problema nella query.
    Stampa la query prima di eseguirla e provala a mano e vedi cosa ti restituisce.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    se aspetti qualche milione di anni vedi che da 24 passa a 42, gli hai dato poco tempo per riflettere ancora...
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Quote Originariamente inviata da idnob Visualizza il messaggio
    Perfetto grazie mille
    Funziona tutto , il problema è che mi da sempre lo stesso numero 24?! provando a mettere un mese in cui c'è un solo record (e non è 24) esce sempre 24, provando qualsiasi mese.
    Prova a inviarci una dumpata della tua tabella e comunque... 24 è strano perchè è il doppio di 12 ovvero i mesi dell'anno... Hai fatto forse confusione con i nomi dei campi?

  10. #10
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    se aspetti qualche milione di anni vedi che da 24 passa a 42, gli hai dato poco tempo per riflettere ancora...
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.