Topic: Pubblico
- Composto da 3 Posts di 2 Utenti.
|
22 Agosto, 2011 20:31
|
#1
|
mysqlmax
Utente
Registrato: Jun, 2011
Posts: 4
Offline
|
Ciao, ho una query che somma il totale degli annunci inseriti nel db in base alla categoria di appartenenza: SELECT COUNT(idannuncio)AS totann, annuncio.idcategoria FROM annuncio,categoria WHERE annuncio.idcategoria = categoria.idcategoria GROUP BY annuncio.idcategoria quello che non so proprio come fare è estrarre i singoli record sempre in base al valore del campo categoria.idcategoria: mi spiego meglio, il risultato della query è: totann idcategoria 1 1 2 3 5 4 vorrei ottenere categoria 1, 1 annuncio categoria 2, 3 annunci categoria 4, 5 annunci mi aiutate per favore?
|
|
22 Agosto, 2011 22:45
|
#2
|
fuser
Utente
Registrato: Aug, 2011
Posts: 86
Offline
|
Non sono sicuro di aver interpretato bene, ma provo a risponderti:
1SELECT CONCAT('Categoria ', c.idcategoria, ': ', COUNT(a.idannuncio), IF(COUNT(a.idannuncio) = 1, ' annuncio', ' annunci')) AS messaggio
2FROM categoria c LEFT JOIN annuncio a
3ON a.idcategoria = c.idcategoria
4GROUP BY annuncio.idcategoria;
(attenzione, la query che hai inserito tu faceva un'inner join, perciò non trovava le categorie con 0 annunci... almeno credo)
|
|
23 Agosto, 2011 10:18
|
#3
|
mysqlmax
Utente
Registrato: Jun, 2011
Posts: 4
Offline
|
Grazie fuser, la tua query è meglio della mia. L'ho leggermente modificata e funziona egregiamente: SELECT CONCAT( c.idcategoria, c.categoria, ': ', COUNT( a.idannuncio ) , IF( COUNT( a.idannuncio ) =1, ' annuncio', ' annunci' ) ) AS messaggio FROM categoria c LEFT JOIN annuncio a ON a.idcategoria = c.idcategoria GROUP BY c.idcategoria Ma il vero problema che ho è che non so come assegnare il risultato della query a delle variabili php: $categ1 = risultato della query dove idcategoria = 1 $categ2 = risultato della query dove idcategoria = 2 ecc.
|
Condividi su:
Loggati o
Registrati per replicare