Ho una tabella MESSAGGI con all'interno il campo ID, TESTO, AUTORE devo trovare quanti messaggi ha inserito ogni autore qualcuno può aiutarmi?
grazie
Ho una tabella MESSAGGI con all'interno il campo ID, TESTO, AUTORE devo trovare quanti messaggi ha inserito ogni autore qualcuno può aiutarmi?
grazie
molto semplice, devi usare COUNT()...GROUP BY...
per il singolo ok
"SELECT count(*) FROM messaggi WHERE autore = 'abc'";
per tutti dovrebbe essere così:
"SELECT count(*) FROM messaggi GROUP BY autore
il problema è che nella select devo selezionare anche altri campi
"SELECT id_messaggio, testo, data_creazione, autore FROM messaggi WHERE id_categoria = '".$_GET["id_categoria"]."' ORDER BY data_creazione ASC";
semplicemente non ha senso, non puoi avere nello stesso risultato dettagli e totali. prova a fare un esempio di cosa vorresti
mi servono solo totali ho provato ad aggiungere alla query group by e count ma non funziona
"SELECT id_messaggio, testo, data_creazione, autore, count(autore) as totale FROM messaggi WHERE id_categoria = '".$_GET["id_categoria"]."' GROUP BY autore ORDER BY data_creazione ASC";
Ultima modifica di colomber; 09-08-2017 a 17:03
nella tua query non ci sono SOLO totali, ci sono ANCHE i dettagli. per questo ti dà errore.
una cosa che io personalmente trovo molto fastidiosa: non dire "non funziona", ma specifica esattamente l'errore che ricevi.
PHP ti avvisa che stai passando un booleano al posto di una risorsa (che poi sarebbe il risultato della query) e questo indica che la query restituisce un errore
la cosa migliore che puoi fare è correggere la query (se vuoi i messaggi di ogni utente devi evitare di includere nei campi restituiti i valori non comuni tra tutti i messaggi di quell'utente - ad esempio, data_creazione e id_messaggio non ci vanno), eseguirla direttamente su un client MySQL e vedere se il risultato è quello che ti aspetti
poi la inserisci nel codice e testi se funziona correttamente tutto