Avatar billede bigtime Nybegynder
06. juli 2010 - 21:20 Der er 13 kommentarer og
1 løsning

GRUPED BY ?

Hey jeg har den her tabel i dben som hedder game_log og der kommer der en streng i hver gang en bruger spiller et spil.
hvordan laver jeg så den counter alle i game_log som har profilID som brugeren. så skal den vise det spil som brugeren har spillet mest osv osv.
jeg er i gang med den her men kan ikke rigtig komme hvidere
$res = mysql_query("select * from game_log where profilID='$profilID' grupe by spil_id order by RAND() limit 4"); ved godt det ikke er helt rigtigt derfor mangler jeg lidt hjælp hehe :D
Avatar billede kokkens Nybegynder
06. juli 2010 - 21:28 #1
$res = mysql_query("SELECT * FROM game_log WHERE profilid="'.$profilID' ORDER BY spil_id DESC");

prøv det :)
Avatar billede bigtime Nybegynder
06. juli 2010 - 21:35 #2
ikke helt det jeg mener jeg har måske 20 tråde i game_log hvor min profil har spillet det samme spil dem skal den tælle sammen og så skrive jeg har spillet det spil mest og spillet det eksempelvis 20 gange
Avatar billede majbom Novice
06. juli 2010 - 21:54 #3
skal den tage alle spil som vedkommende har spillet, og skrive hvor mange gange han har spillet hvert spil og sortere efter mest spillede?
Avatar billede kokkens Nybegynder
06. juli 2010 - 21:55 #4
[code]
Function getGames($id) {
    $res = mysql_query("SELECT * FROM game_log WHERE profiid="'.$id' ORDER BY spil_id DESC");
    $Row = mysql_fetch_array($res);
    $Query = mysql_query("SELECT * FROM game_log WHERE profilid="'.$id.'" AND spil_id='".$Row['spil_id']."'");
    return mysql_num_row($Query);
}
echo getGames($profilID);
[/code]

Prøv det er ikke 100% sikker med DESC :P
Avatar billede showsource Seniormester
06. juli 2010 - 22:56 #5
Du har vel både et brugerid og et spilid i tabellen ?
Avatar billede showsource Seniormester
06. juli 2010 - 23:10 #6
Nåh, hvis dy har det:
$sql = "SELECT profilID, spilID, COUNT(*) as antal FROM game_log WHERE profilID = ".$profilID." GROUP BY spilID";

$rows = mysql_query($sql) or die (mysql_error());
Avatar billede mike1963 Nybegynder
07. juli 2010 - 11:58 #7
Nåh, hvis dy har det:
$sql = "SELECT profilID, spilID, COUNT(*) as antal FROM game_log WHERE profilID = ".$profilID." GROUP BY profilID, spilId";

$rows = mysql_query($sql) or die (mysql_error());

Man skal gruppere på alle dimentioner - der manglede lige profilID

Så får du profil, id, antal i den rigtige rækkefølge

order by sikrer rækkefølgen af grupperne, subgrupperne

så der skal også en Order By  profilID, spilId ...

Ok ?
Avatar billede showsource Seniormester
07. juli 2010 - 12:18 #8
Måske ?
"hvordan laver jeg så den counter alle i game_log som har profilID som brugeren. så skal den vise det spil som brugeren har spillet mest osv osv."

kan misforstås lidt, en eller alle spillere ?
Anyway er der spørgers ex. $profilID som jeg ser som specifikt for hver bruger.

Evt.

$sql = "SELECT spilID, COUNT(*) as antal FROM game_log WHERE profilID = ".$profilID." GROUP BY spilId ORDER BY antal DESC";

$profilID er jo sat, så det er kun spilid, samt antal der er nødvendige at hente.
Hvis ellers det kun er for en enkelt bruger der skal hentes.
Avatar billede mike1963 Nybegynder
07. juli 2010 - 17:17 #9
Nemlig

Den anden er næste nivea op - fx alle spillere der spiler spillet PHP

Så du er i mål ...
Avatar billede bigtime Nybegynder
09. juli 2010 - 21:39 #10
Hey sorry mit sene svar men vender lige tilbage om et par dage, har fået ny server så alt fucker lige pt :(
Avatar billede showsource Seniormester
10. juli 2010 - 03:14 #11
#9 => Bortset fra at i
$sql = "SELECT profilID, spilID, COUNT(*) as antal FROM game_log WHERE profilID = ".$profilID." GROUP BY profilID, spilId";

gi'r det ingen mening at bruge GROUP BY profilID, når
WHERE profilID = ".$profilID."
indgår i query.
Avatar billede mike1963 Nybegynder
10. juli 2010 - 10:12 #12
Nej
Avatar billede showsource Seniormester
10. juli 2010 - 20:01 #13
nej hvad ?
Avatar billede mike1963 Nybegynder
11. juli 2010 - 14:44 #14
At det ikke giver mening med en gruppering på et felt der kun vil optræde i en variant fordi den er kvalificeret i en WHERE ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester