Jag har ett litet bryderi i ett script som hanterar anmälningar till olika aktiviteter i World of Warcraft. Den del som trasslar är listan över medlemmar:
http://pong.muffinmilitia.net/members.php
Som ni ser så kan man sortera listan efter namn, klass och befattning (har bara bemödat mig att tillåta fallande sortering). Jag vill kunna sortera efter anmälningsratiot angivet i procent också. Problemet är här att medan de tre tidigare fälten kan sorteras direkt i MySQL-frågan så är ratiot ett värde som hämtas ur flera tabeller som sedan behandlas för att skapa ett procentvärde. Hur ska jag sortera listan efter detta?
Jag har funderat på att ha en tvådimensionell array där data läggs rad för rad och sedan sorteras på ratiot eller finns det något sätt att utföra procentuträkning direkt i MySQL-frågan?
Tabellerna ser ut som följer:
pe
| id | eventid | playerid | note |
player
| id | name | class | password | officer |
event
| id | event | invitetime | pulltime | (sju fält med de olika klasserna) |
Nu har jag inte tillgång till php-scriptet (sitter på jobbet) men jag har för mig att frågorna för att plocka ut ratiot ser ut ungefär såhär (pseudoaktig kod):
z = SELECT name, class, officer FROM player (hämtar info om medlemmarna)
x = SELECT count(event) FROM event (hyfsat simpel fråga, ger totalt antal events i databasen)
y = SELECT count(pe.playerid) FROM pe, player WHERE pe.playerid = player.id AND player.id = vemdetnuärmantittarpå (hur många anmälningar har vemdetnuärmantittarpå gjort totalt?)
ratio = round((y / x)*100, 2)
Vad tycker ni? Finns det nåt klurigt sätt att få MySQL att räkna ut ratiot för att på så vis kunna sortera direkt i frågan, eller blir det att ta till PHP?
Hoppas att jag har kunnat förklara någotsånär bra. ;)
Om det nu går att fixa direkt i frågan så borde kanske tråden ligga i SQL-forumet istället, den som lever får se...