SkogizMedlem sedan feb. 200395 inlägg $data = mysql_db_query("databasen", "SELECT playerid, max(actionid) FROM matches where actionid = '$actionid' group by playerid");
while ($rad = mysql_fetch_assoc ($data))
{
print "Spelare ";
print $rad["playerid"];
print "har gjort ";
print $rad["max(actionid)"];
}
När jag kör koden ovan blir det bara blankt.
Om jag kör frågan
SELECT playerid, max(actionid) FROM matches where actionid = '3' group by playerid;
i querybrowser så får jag fram data...
Någon som kan hjälpa mig att få till korrekt kod
Tack på förhand
PeddaMedlem sedan juni 20006 032 inlägg Sätt ett alias på din max()
$data = mysql_db_query("databasen", "SELECT playerid, max(actionid) as summa FROM matches where actionid = '$actionid' group by playerid");
print $rad["summa"];
edit /
Jäkla bugg som slänger in smilies.
headbugMedlem sedan sep. 2006867 inlägg Jag är inte så supervass på vare sig PHP eller MySQL men jag skulle gissa att du i din associativa array inte kan ropa på fältnamnet "max (actionid)" utan att du i SQL-frågan måste använda AS och ge ditt maxvärde ett namn explicit som du sedan ska använda.
Alltså:
$data = mysql_db_query("databasen", "SELECT playerid, max(actionid) AS max_a_id FROM matches where actionid = '$actionid' group by playerid");
while ($rad = mysql_fetch_assoc ($data))
{
print "Spelare ";
print $rad["playerid"];
print "har gjort ";
print $rad["max_a_id"];
}
Sedan kan man ju fråga sig varför i allsin dar du vill ta ut max (actionid) när du i redan i frågan tar ut alla rader som har ett visst action-id, du vet ju redan vad max av ett unikt värde är (=sig självt).
Har du tänkt igenom ordentligt? :)
mvh
/red: såklart han pedda först :) Och dumma smileys
SkogizMedlem sedan feb. 200395 inlägg Det där funkade mycket bättre ja! Tack! (y)
Men hur blir det om jag istället för spelar-id vill ha namnet på spelaren. Jag har alla spelare i en egen tabell (players) där de får ett unikt id (det id som jag nyss sökt fram)
Är det en INNER JOIN man ska köra då men hur bör den se ut?
headbugMedlem sedan sep. 2006867 inlägg Det stämmer att det är en join du ska göra. Under antagandet att din tabell "players" har en kolumn som heter "name" och en som heter "ID" så skriver man såhär:
$data = mysql_db_query("databasen", "SELECT p.name, max(m.actionid) AS max_a_id FROM matches m INNER JOIN players p ON p.ID = m.playerid WHERE m.actionid = '$actionid' GROUP BY m.playerid");
SkogizMedlem sedan feb. 200395 inlägg Tack headbug! :e
Funkar det att baka ihop fältnamn?
Alltså typ så här
Concat( p.surename, ' ', p.lastname ) AS fullname