FAQ |
Kalender |
![]() |
#31 | ||
|
|||
Medlem
|
Hänger inte riktigt med på vilket resultat du vill ha ut i din senaste fråga. Alltså vilka kolumner och data vill du få fram?
Hur ska du använda resultatet? Ska du visa en lista på medlemmar med total power, samt alla items de har? Om det inte är för många medlemmar som ska visas per sida så är det nog enklare/bättre att lösa detta i php-koden med flera querys. Antingen en med alla medlemmar och deras total power och sedan en per medlem för att hämta upp deras items till den medlemmen eller en för alla medlemmarna och en för alla items för dessa medlemmar och sedan php-logik för att sätta ihop resultaten. Alternativt kan du titta på group_concat, om du bara behöver en textsträng med items dvs. Då kan också så klart joina ihop member data med total power och items med en subquery för att få ut allt i samma fråga. |
||
![]() |
![]() |
![]() |
#32 | ||
|
|||
Klarade millennium-buggen
|
Så här skulle du konna lägga in get_crew_power() som en SP:
Kod:
DELIMITER $$ CREATE PROCEDURE `get_crew_power`(in param_crew_id int) BEGIN SELECT SUM(t.totPower) AS total_crew_power FROM crew_members cm JOIN members m ON m.member_id = cm.user_id JOIN (SELECT m.member_id, (SUM(i.item_stat) + MAX(m.member_attack) + MAX(m.member_defence)) AS totPower FROM members m JOIN memberitems mi ON m.member_id = mi.memberitems_member JOIN items i ON i.item_id = mi.memberitems_item GROUP BY m.member_id)t ON t.member_id = m.member_id WHERE cm.crew_id = param_crew_id GROUP BY cm.crew_id ; END$$ Kod:
if (!$db->query("CALL get_crew_power(" . crew_id . ")")) { echo "CALL failed: (" . $db->errno . ") " . $db->error; } För att anropa SPn från PHP UTAN felhantering skriver du så här: Kod:
$db->query("CALL get_crew_power(" . crew_id . ")") Senast redigerad av Conny Westh den 2013-04-17 klockan 23:12 |
||
![]() |
![]() |
Svara |
|
|