Visualizzazione dei risultati da 1 a 8 su 8

Discussione: mysql funzione count()

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379

    mysql funzione count()

    ragazzi mi serve una mano non riesco a capire per quale motivo questa query non vuole funzionare.

    "select id, count(ip) as errori from cm_logerrori where ip = '".$_SERVER['REMOTE_ADDR']."' and evento > (evento-3600)"

    |
    V

    Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause


    per id(int) si intende il codice di un utente,
    per ip(varchar) si intende il suo ip,
    e evento(int10) è un timestamp unix.

    io devo vedere se questo utente ha commesso piu' di 8 errori nell'ultima ora... come potrei fare?


    grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    Come dice la segnalazione dell'errore, manca il GROUP BY in presenza di COUNT().

    codice:
    "select id, count(ip) as errori from cm_logerrori where ip = '".$_SERVER['REMOTE_ADDR']."' and evento > (evento-3600) GROUP BY id"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    si ma aggiungendo un group by non funziona lostesso

  4. #4
    Utente di HTML.it L'avatar di wdb
    Registrato dal
    Nov 2002
    Messaggi
    155
    che errore da'?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    il fatto è che non da errore ma mi restituisce un inseieme vuoto. insomma non riesco a fare la cosa che voglio io.


    con questa query dovrei vedere quanti errori ha causato un utente ( o meglio un ip) nell'ultima ora, selezionando anche l'id dell'utente interessato.


    id evento nota ip
    1 1217465772 (password errata) 127.0.0.1
    1 1217465786 (password errata) 127.0.0.1
    1 1217465830 (password errata) 127.0.0.1
    1 1217465853 (password errata) 127.0.0.1
    1 1217465931 (password errata) 127.0.0.1
    1 1217466056 (password errata) 127.0.0.1
    1 1217466187 (password errata) 127.0.0.1
    1 1217466198 (password errata) 127.0.0.1
    1 1217466230 (password errata) 127.0.0.1
    1 1217466244 (password errata) 127.0.0.1
    1 1217490556 (password errata) 127.0.0.1
    1 1217491266 (password errata) 127.0.0.1

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    La query che hai usato però non la hai postata

    Io proverei così
    codice:
    SELECT id, count(ip) as errori 
    FROM cm_logerrori 
    WHERE ip = '".$_SERVER['REMOTE_ADDR']."' and evento > (evento-3600) 
    GROUP BY ip

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    ecco sono riuscito avevo completamente dimenticato di fetch-are il risultato!

    sarà la stanchezza!

    ho ancora un problema pero con la seconda condizione quella che fa "evento > (evento-3600)" fa come se non ci fosse...

    lo salta



    ps. [clasku] :master: look at the first post ^^

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    ^^^
    ok, ma mica hai detto che in base a cosa raggruppavi...
    No problem, contento tu abbia risolto

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.