Har en tabell med spelare och sen en tabell som ska hålla koll på vilka spelare som spelar vilka matcher och i vilken "femma".
Går det att få ut datat såhär?
1:a Femman
# | Namn |Spelar (checkbox)
---------------------
2 Olle Ja
3 Pelle Ja
12 Kalle Ja
13 Nisse Ja
21 Sven Ja
2:a Femman
# | Namn |Spelar (checkbox)
---------------------
6 Olle2 Ja
7 Pelle2 Ja
8 Kalle2 Ja
18 Nisse2 Ja
24 Sven2 Ja
Övriga
# | Namn |Spelar (checkbox)
---------------------
61 Olle3 Nej
37 Pelle3 Nej
Tabellerna ser ut som följer
game_players (i denna ligger spelarna som spelar aktuell match)
id | game_id | player_id | line (vilken femma)
----------------------------------
1 101 2 1
2 101 3 1
3 101 12 1
4 101 18 2
5 101 24 2
osv...
players (i denna ligger alla spelarna)
id | namn
-------------------------
2 Olle
3 Pelle
12 Kalle
18 Nisse2
24 Sven2
osv...
Har helt kört fast hur detta ska gå till. Har testat lite med joins å så och fått ut spelarna som ska spela, men sen vill jag ju lista alla de som inte ska spela. Detta för att man ska kunna via checkboxarna kryssa ur en och kryssa i en annan så de byter plats så att säga.
Detta ska vara "startsidan" till en online-rapportering och då man kommer till sidan först finns ju inga spelare som ska spela utan då ska alla listas i nummerföljd. Därefter får man reda på (av laget/tränaren) vilka som ska spela och i vilken femma.
Efter man klickat i och skrivit i "femma" på de spelarna som ska spela ska det sorteras så som jag skrivit, OM det går?
Använder MSSQL till detta.
select p.player_id,namn,
case when line is null then 'Nej' else 'Ja' end as spelar,line
from players p
left join game_players gp on p.player_id = gp.player_id
and match_id = 101
order by coalesce(line,999)
Att visa spelarna i olika femmor är något som du får hantera i din presentationslogik.
Tror jag har läst mig till vad "coalesce(line,999)" betyder.
Den sorterar alltså efter "line" i första hand, men är den "NULL" så tar den "999" och eftersom det troligtvis inte finns 999 femmor så placeras den sist.
Har jag fattat rätt?
Nja. Det fungerade inte riktigt som jag hade tänkt, men det kanske inte går heller.
Hade tänkt att i "game_players" tabellen endast ha de spelare som ska spela. Och sen under de lista resterande spelare.
Men om kör den sql-en som jag fick tidigare och kompletterar med en där man får ut alla spelare ur tabellen "players" som inte finns med i "game_players" så skulle det lösa sig. Borde väl gå på nåt sätt, eller?
Fyller nu på med en extra fråga som har med detta att göra.
När jag ska få ut spelare som finns i laget, men inte i "game_players" använde jag denna till en början:
SELECT p.* FROM players p
LEFT JOIN game_players gp ON p.id = gp.player_id
WHERE p.deleted=0 AND p.team_id= xxxx
AND gp.player_id IS NULL"
Men har nu insett att det inte går så bra vid match två typ, för då finns ju redan spelaren i tabellen
Har försökt med att lägga till "AND gp.game_id=xxx" men det blir inga resultat av det.
SELECT p.* FROM players p
LEFT JOIN game_players gp ON p.id = gp.player_id
AND gp.game_id=xxx
WHERE p.deleted=0
AND p.team_id= xxxx
AND gp.player_id IS NULL