Visualizzazione dei risultati da 1 a 7 su 7

Discussione: group by

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274

    group by

    ragazzi ho questa query, che mi deve selezionare dal database, l'utente che ha votato (from) e la data dell'ultimo voto ricevuto da quell'utente.

    SELECT `from`, `date` FROM `votes` WHERE MONTH(date) = MONTH(CURDATE()) AND YEAR(date) = YEAR(CURDATE()) AND `to`='$this->uid' GROUP BY `from` ORDER BY `date` DESC
    il problema è che (molto stranamente) sbaglia spesso la data.

    esempio:
    nel database ho che l'utente X che ha inserito l'ultimo voto in data Y.
    la query invece mi dice che l'utente X ha inserito l'ultimo voto in un'altra data...

    perchè? :berto: soluzioni?
    Progeny

  2. #2
    :master:
    Ho bisogno di un po' di spiegazioni per darti una mano.

    1. Come inserisci la data nella tabella?
    2. che tipo di campo è quella della data nella tabella?
    3. Facendo una query di select semplicissima dalla shell di mysql, che tipo di date ottieni?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274
    Originariamente inviato da alcio74
    :master:
    Ho bisogno di un po' di spiegazioni per darti una mano.

    1. Come inserisci la data nella tabella?
    2. che tipo di campo è quella della data nella tabella?
    3. Facendo una query di select semplicissima dalla shell di mysql, che tipo di date ottieni?

    1. la data viene inserita usando CURDATE() quindi una cosa tipo insert `table` set `data`= CURDATE()
    2. il campo è di tipo date
    3. facendo una query ottengo delle date tipo aaaa-mm-dd comprensive di zeri

    Progeny

  4. #4
    3. facendo una query ottengo delle date tipo aaaa-mm-dd comprensive di zeri
    Quindi, come sospettavo, significa che alcune volte la data viene inserita come stringa vuota.
    Devi controllare la form di inserimento ed il modo in cui vengono passate le variabili dalla form al DB.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274
    Originariamente inviato da alcio74
    Quindi, come sospettavo, significa che alcune volte la data viene inserita come stringa vuota.
    Devi controllare la form di inserimento ed il modo in cui vengono passate le variabili dalla form al DB.

    per comprensive di zeri intendevo qualcosa di 2008-08-06 (lo zero come prima cifra in giorno o mese) e non 0000-00-00
    Progeny

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Prova così
    codice:
    SELECT `from`, max(`date`) FROM `votes` WHERE MONTH(`date`) = MONTH(CURDATE()) AND YEAR(`date`) = YEAR(CURDATE()) AND `to`='$this->uid' GROUP BY `from`

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    274
    grazie luca, funziona
    Progeny

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.