totale campi e recupero record | PHP

Topic: Pubblico - Composto da 3 Posts di 2 Utenti.

22 Agosto, 2011 20:31 #1
mysqlmax
Utente

mysqlmax
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

fuser
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

mysqlmax
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