selecteaza categoria grupeaz-o si ordoneaz-o dupa id desc

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

selecteaza categoria grupeaz-o si ordoneaz-o dupa id desc

Mesajde killbaz » Vin Ian 14, 2011 2:04 pm

Salutare tuturor.

Incerc sa imi inchipui cum ar trebui sa arate urmatorul query, dar nu reusesc :(

Am tabelul capsuni.
Doresc sa selectez din capsuni categoria si ID.

Cod: Selectaţi tot

SELECT ID,categoria FROM capsuni;


OKay, daca ar fi fost atat de simplu, nu mai intrebam. Acum, daca ma puteti ajuta v-as fi cumva recunoscator.

Cod: Selectaţi tot

SELECTEAZA categoria DIN capsuni GRUPEAZA DUPA categoria ORDONEAZA DUPA ID DESCRESCATOR


Deci, am urmatoarele:

ID - categoria
1 - rosii
2 - rosii
3 - rosii
4 - mari
5 - mari
6 - mari
7 - mari
8 - verzi
9 - verzi
10 - verzi

Cum grupez categoria si sa le ordonez descrescator dupa id astfel incat sa arate asa:

Verzi(3)
Mari(4)
Rosii(3)

(imi pare rau ca am adaugat si count , poate fi si fara count, nu contaza, macar sa mearga )

Multumesc, extrem.


echo $semnatura;

guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Vin Ian 14, 2011 3:20 pm

la prima vedere cred ca ceva de genul asta :

Cod: Selectaţi tot

SELECT count(categoria) FROM capsuni GROUP BY categoria ORDER BY id DESC


Te sfatuiesc sa citesti despre GROUP BY si ORDER BY

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Vin Ian 14, 2011 3:29 pm

Din pacate nu e asa :( asa imi da doar count-ul.
Mie imi trebuie sa selecteze categoria, sa o numere, si pe urma sa o ordoneze descrescator in functie de id.

Cum am mai spus si mai sus:

ID categoria
1 verde
2 verde
3 rosu
4 rosu
5 alb

Trebuie sa iasa asa:

Alb(1)
Rosu(2)
Verde(2)

:( e ceva cu inner join, cu as si count sigur. Dar nu stiu cum sa le pun in ordinea corecta.
echo $semnatura;

guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Vin Ian 14, 2011 4:16 pm

nu este cu inner join

Cod: Selectaţi tot

SELECT id, categoria, count(categoria) AS totalCategorii FROM capsuni GROUP BY categoria ORDER BY id DESC
 


si apoi fa un print la vector:

Cod: Selectaţi tot

echo "<pre>";
print_r($row);echo "<pre>";

killbaz
Average Member
Mesaje: 107
Membru din: Vin Ian 23, 2009 11:30 pm
Localitate: Botosani
Contact:

Mesajde killbaz » Vin Ian 14, 2011 4:23 pm

stii ce imi face? ordoneaza cum trebuie dar nu.... selecteaza primul id din categorie si nu pe ultimul.

Exact asta am facut eu acum si m-am ofticat, am inchis tot si am iesit din navicat. nu ca tine am facut, am facut altfel, dar exact acelasi rezultat.... :(


ID - categoria
1 alb
2 verde
3 verde
4 rosu
5 galben

Si ce trebuie facut:

Galben
rosu
verde
Alb
echo $semnatura;

guppy
Senior Member
Mesaje: 353
Membru din: Joi Mai 03, 2007 12:14 am

Mesajde guppy » Vin Ian 14, 2011 4:29 pm

daca nu reusesti sa dezvolti ce ti-am dat eu, pune aici codul cu tot cu query si poate vei primi si alte sugestii

dechim
Senior Member
Mesaje: 1486
Membru din: Mar Mai 10, 2005 11:53 pm
Localitate: Drobeta Turnu Severin

Mesajde dechim » Vin Ian 14, 2011 11:33 pm

Asa e bine?

Cod: Selectaţi tot

SELECT MAX(id) AS id1, categoria, count(categoria) AS totalCategorii FROM capsuni GROUP BY categoria ORDER BY id DESC ;


Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 6 vizitatori