GROUP BY geeft niet het juiste resultaat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer Zorg-ICT

Complexe software ontwikkelen: dat is jouw ding! Voor onze vestiging in Hoogeveen zoeken wij fanatieke junior en senior .NET Developers die met de laatste Microsoft-tools en -technieken willen werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' software, die wordt ingezet in ziekenhuizen door heel Nederland. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in een klein team. ChipSoft maakt gebruik van een zelf ontwikkeld multi tier framework. Tijdens een

Bekijk vacature »

QA Specification Technologist

QA Specificationtechnologist, met een passie voor food Menken Orlando is een internationaal opererend familiebedrijf met een lange traditie. We ontwikkelen en leveren innovatieve foodconcepten voor retail- en foodserviceklanten in heel Europa. Deze concepten worden geleverd onder private label of als een van de eigen merken van Menken Orlando. De belangrijkste productgroepen zijn Asian snacks, noten, maaltijdverrijkers en chocoladeproducten. De grondstoffen worden van over de hele wereld geïmporteerd. Menken Orlando heeft drie productielocaties in Nederland, Den Haag, Hazerswoude en Blijham. Als versterking voor ons team in Den Haag zijn we op zoek naar een QA SpecificationTechnologist (32-40 uur) Den Haag Wat

Bekijk vacature »

Team Lead PHP

As Tech Lead, you make our customers smile by providing great software and building an effective team. How do I become a Team Lead PHP at Coolblue? As a Team Lead PHP you build and lead a team that excels in providing high-quality and cost-efficient software. You support team members in defining their goals and with the approach to achieve them. Would you like to become a Team Lead PHP at Coolblue? Else de Boer explains how to do that. You enjoy doing this Building and leading a team that excels in providing high quality and cost effective software. Support

Bekijk vacature »

Interaction Designer

Geen scherm ontwerpuitdaging is je te gek en je krijgt energie van klanten die tevreden met jouw oplossingen aan de slag zijn. Doordat je regelmatig contact hebt met klanten door het bijwonen van klantsessies of gebruikerstesten, ken je de wereld van je gebruikers en weet alles over UI interactie en patronen. Je werkt graag aan het opzetten en invullen van een gebruikersinteractie, waarbij aandacht voor detail en bruikbaarheid voorop staan. Accountancy is een complex vakgebied, waarbij je veel te maken krijgt met steeds veranderende regelgeving waar we met onze software op aan moeten haken. Het geeft jou een kick als

Bekijk vacature »

IAM developer

Functieomschrijving IAM, voor jou hoeven we dat niet te vertalen toch? Want jij weet exact waar wij het over hebben bij het benoemen van Identity Access Management. Ben je toe aan een informele, mensgerichte omgeving met vrijheid, ondernemerschap, creativiteit en focus op innovatie? Dat zijn wij! En laten wij nou op zoek zijn naar jou, een IAM developer die ons team helpt Randstad naar een veilige toekomst te helpen. Als IAM developer bij ons ben jij samen met de overige teamleden aanspreekpunt binnen de organisatie ten behoeve van functionele en technische vragen omtrent Identity & Access Management. Samen met andere

Bekijk vacature »

PHP Ontwikkelaar

Wij, Schulinck - onderdeel van Wolters Kluwer, zoeken een PhP Ontwikkelaar voor het ontwikkelen van onze online applicaties, zoals: Schulinck Grip op, Schulinck Antwoord op, Schulinck Traject51 and Schulinck e-forms. Je denkt mee in het functioneel ontwerp en draagt zorg voor een perfecte implementatie. Je verdiept je in bestaande modules en onderhoudt deze. Wat ga je verder doen? · Vertalen van klantbehoeften naar technische oplossingen; · Ontwikkelen en onderhouden van software in een SCRUM team; · Reviewen van gemaakte code en opstellen documentatie; · Ontwikkelen van (geautomatiseerde) testen. Over Schulinck Wij zijn een sterk groeiend onderdeel van Wolters Kluwer en

Bekijk vacature »

Front-end Developer

Als Front-End Developer kom je te werken bij een dynamische organisatie waar webapplicaties en websites ontwikkeld worden voor nationale en internationale klanten. Er wordt hier niet zomaar in opdracht gewerkt, maar het gaat hier echt om samenwerken en meedenken. De nieuwste technieken kunnen jou helpen bij het ontwerpen van deze toepassingen, denk aan: D3.js, Vue.js, React en Gulp. Deze omgeving moet als Front-End Developer echt bij je passen, denk aan de verantwoordelijkheid bij een project van A tot Z, creativiteit, zelfredzaamheid, pro activiteit en de samenwerking met collega's en partners. Hier wordt met passie gewerkt en het is belangrijk dat

Bekijk vacature »

Ervaren .NET C# ontwikkelaar, inhouse, complex maa

Ben je als ervaren ontwikkelaar op zoek naar een analytische omgeving? Waar hoogopgeleiden en ervaren collega’s jouw kennis naar een hoger niveau kunnen tillen? Waar je met een leuk team samen aan innovatieve producten werkt? Dan zou de deze organisatie wel eens goed bij je kunnen passen. Voor een organisatie in Delft zoeken we momenteel een ervaren .NET C# ontwikkelaar. De organisatie richt zich op innovatieve en complexe maatwerk systemen met een maatschappelijke raakvlak. Hierbij moet je (afhankelijk van je niveau) mee kunnen denken met functionele en architectonische vraagstukken. De projecten kunnen uiteenlopend zijn en het is maar net wat

Bekijk vacature »

Frontend Developer

Wil jij meehelpen met het (door-)ontwikkelen van de online applicatie portfolio van Schulinck, onderdeel van Wolters Kluwer? Wil jij het huidige team van Software Ontwikkelaars versterken? Wil jij werken volgens SCRUM, ontwikkelen volgens de SOLID principes en voorop lopen in het toepassen van de nieuwste front-end ontwikkelmethodieken? Word dan onze nieuwe Front-end Developer! Over Schulinck Wij zijn een sterk groeiend onderdeel van Wolters Kluwer en actief binnen het sociaal domein en de omgevingswet in Nederland. Op onze vestiging in Venlo werken wij met een enthousiast ICT team van 10 collega’s samen en ondersteunen wij klanten in de gemeentemarkt. De ICT

Bekijk vacature »

.NET Developer / C#

Bedrijfsomschrijving werken bij een organisatie waar je met het volgende in aanraking komt: High-intensity dataverkeer, meer dan 2,7 miljard berichten per jaar; Development aan .NET applicaties die maandelijks miljoenen euro's verwerken; Salaris als developer tot bijna 70.000 euro op jaarbasis; Geen partij in de omgeving van Tilburg die zo'n complex .NET applicatielandschap heeft; Werken aan meer dan 50 diensten, verdeeld over 10 Scrum teams; Focus op o.a.: C# en ASP.NET in een Agile organisatie; Elk kwartaal een week lang verplicht met nieuwe technieken/tooling werken; Meer dan 40 ervaren .NET ontwikkelaars als collega's; Mogelijkheid om 32 of 36 uur te gaan

Bekijk vacature »

Developer DataPower

Bedrijfsomschrijving Je komt als DataPower developer te werken in de regio Deventer/Apeldoorn bij een van de meest complexe IT omgevingen van Nederland. De organisatie is constant in beweging en bezig met de nieuwste tools en technieken, het is een platform waar immers miljoenen (!) gebruikers van afhankelijk zijn. De organisatie werkt met grote hoeveelheden data, zij richten zich zowel op de B2B als B2C markten en zijn pionier binnen hun gebied van expertise. Je komt te werken in een team met de beste DataPower specialisten die Nederland kent. Je zal bezig zijn met het ontwerpen, bouwen en testen op het

Bekijk vacature »

Xamarin C# Developer

As an Xamarin C# Developer, you make sure our cross platform mobile apps give our employees the best possible way to manage Coolblue operations. How do I become a Xamarin C# Developer at Coolblue? Your specialty is either C# OR mobile app code, and you enjoy working with Xamarin. You like to do some pair programming with your colleagues, to guarantee higher quality in the codebase. Besides that you think about technical decisions like architecture, tools and processes. You also keep an eye on the performance of your app and you analyse with your team how to improve it. Following

Bekijk vacature »

.NET Developer / C# / financiële organisatie

Bedrijfsomschrijving Als C# .NET Developer wordt je verantwoordelijk voor het ontwikkelen van applicaties voor belangrijkste product van deze organisatie. Dit product is een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Er wordt gewerkt met de nieuwste moderne ontwikkeltechnieken. Daarnaast ben je verantwoordelijk voor het implementeren van gloednieuwe features! Zo is er bijvoorbeeld onlangs een interface met Robotics gebouwd en zijn er veel stand-alone systemen die de komende periode moeten worden vervangen. Kennis van API's is dus zeker noodzakelijk. Je hebt nauw contact met de business om requirements te achterhalen en deze te vertalen naar

Bekijk vacature »

Senior C# Developer (NL)

Senior C# Developer (NL) Den Haag HBO/WO IT Professional "Als Senior C# Developer impact maken op de groeiende E-commerce markt met onze logistieke software. Je doet dit door complexe bedrijfskritische logistieke business processen te vertalen naar de ontwikkeling en uitbreiding van onze Cloud IT-platformen en software oplossingen in C# en AWS" Wat ga je doen? PostNL is becoming a postal tech company. Als Senior C# Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead Engineer, Developers en Solution Consultants. Samen zijn jullie verantwoordelijk voor het bouwen aan onderdelen uit onze logistieke software omgeving. Binnen het

Bekijk vacature »

BI Developer Oracle Automotive Internationaal

Bedrijfsomschrijving Deze organisatie is internationaal actief binnen de zakelijke dienstverlening en heeft de kwaliteit van de IT afdeling hoog in het vaandel staan. Al vanaf de oprichting, meer dan 30 jaar geleden, heeft de IT afdeling alle systemen in eigen beheer en worden de eigen applicaties inhouse ontwikkeld in onder andere Oracle, Java en OutSystems. Deze applicaties worden in meer dan 15 Europese landen gebruikt en de volledige ontwikkeling hiervan vindt plaats in het hoofdkantoor gevestigd in regio Utrecht. Vanuit hier worden 15 landen (ruim 2200 gebruikers) en duizenden klanten voorzien van support en de juiste IT systemen. De ontwikkelde

Bekijk vacature »
Bryan De Baar

Bryan De Baar

08/02/2020 22:43:47
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
teams
+--+------+
|ID| TEAM |
|1 |Yellow|
|2 |Green |
|3 |Blue  |
|4 |Red   |
+--+------+

Players
+--+------+
|ID| NAME |
|1 |Ben   |
|2 |Mike  |
|3 |Jason |
+--+------+

Lineups
+---+---+
|PID|TID|
|1  |3  |
|2  |1  |
|2  |4  |
|3  |2  |
+--+----+


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$sql
    = "    SELECT teams.id teamsid, teams.team teamname, lineups.tid, players.name
            FROM teams
            LEFT JOIN lineups ON lineups.tid = teams.id
            AND lineups.pid = 2
            LEFT JOIN players ON lineups.pid = players.id
            GROUP BY players.name
            ORDER BY team
          "
;
$result = mysqli_query($connection, $sql);

while($row = mysqli_fetch_assoc($result)){
    echo $row['name'];
    $checked = ($row['tid'] === NULL ? '' : ' checked="checked"');
?>

<label>
    <input type="checkbox" <?php echo $checked; ?>><?php echo $row['teamname']; ?>
</label><?php
}
?>

De voorlaatste regel in de query GROUP BY players.name zorgt ervoor dat de data niet word weergegeven zoals ik zou willen.
Zonder deze regel zou het resultaat zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
"Ben"
<label><input type="checkbox" checked="checked">Groen</label>
"Ben"
<label><input type="checkbox" checked="checked">Rood</label>


Maar ik wil de player naam 1 keer laten voorkomen in het resultaat, ik dacht dan gebruik ik GROUP BY maar dit levert als resultaat op
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<label><input type="checkbox">Geel</label>
"Ben"
<label><input type="checkbox" checked="checked">Rood</label>


Het resultaat dat ik graag zou willen is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
"Ben"
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
<label><input type="checkbox" checked="checked">Groen</label>
<label><input type="checkbox" checked="checked">Rood</label>


Wat moet ik aanpassen hiervoor?
Gewijzigd op 08/02/2020 22:44:29 door Bryan De Baar
 
PHP hulp

PHP hulp

26/11/2020 08:19:32
 
Thomas van den Heuvel

Thomas van den Heuvel

09/02/2020 00:45:31
Quote Anchor link
Wat wil je in dit overzicht precies bereiken?
Is dit een pagina die aangeeft in welk team een (specifieke) speler opgesteld kan staan?
Je hebt sowieso een rare (?) conditie: AND lineups.pid = 2? Klopt dat?

En was dit hele gebeuren al niet behandeld / opgelost in een ander draadje? Is het echt gerechtvaardigd om hier een nieuw topic over te openen want gaat dit niet over precies hetzelfde?
 
Bryan De Baar

Bryan De Baar

09/02/2020 01:45:33
Quote Anchor link
Hey Thomas,

Klopt in een ander topic hebben we de left join behandeld dit ging inderdaad om het uitlezen van de database en dan checked checkboxes in welk team een player zit.
Aangezien dit iets anders betreft heb ik een nieuw topic geopend wellis waar met het zelfde voorbeeld.

De tabel teams moet altijd volledig worden teruggeven zit de speler in bepaalde teams dan moeten deze checkboxes aangevinkt zijn.
Dit stukje hebben we dus behandeld maar nu wil ik nog de naam van de speler terug krijgen maar wel maar een keer, vandaar dat ik GROUP BY heb geprobeerd.
Maar dan krijg ik het verkeerde resultaat zoals bovenstaand uitgelegd.
 
Jop B

Jop B

09/02/2020 17:11:29
Quote Anchor link
Hi Bryan,


Ik denk dat je voor die naam een aparte query moet maken.
Je query kan trouwens ook nog korter:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
    SELECT id, team, tid
    FROM teams
    LEFT JOIN lineups ON teams.id = lineups.tid
    AND lineups.pid = 2
    ORDER BY team


Maak dan een query alleen op de players tabel met al ID = 2 als je dan een variable maakt en die laat invullen bij de player ID en de TID dan krijg je zowel de naam terug als je checkboxes.

dan krijg je dus zoiets

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$theid
= 2;

$sql1 = "
SELECT id, team, tid
FROM teams
LEFT JOIN lineups ON teams.id = lineups.tid
AND lineups.pid = $theid
ORDER BY team
"
;

$result1 = mysqli_query($connection, $sql1);

$sql2 = "
SELECT name
FROM players
WHERE id = $theid
"
;

$result1 = mysqli_query($connection, $sql2);

//En hier je loopjes...
?>

Gewijzigd op 09/02/2020 17:12:23 door Jop B
 
Thomas van den Heuvel

Thomas van den Heuvel

09/02/2020 22:13:40
Quote Anchor link
Dus je wilt van alle teams alle spelers? Zou het niet logischer zijn om een pagina te maken voor een enkel team, en hierop alle spelers te tonen? Dit kan wederom in een enkele query, op precies dezelfde manier als in het andere topic, maar nu met de spelerstabel als uitgangspunt.

Ik zou dus verwachten dat je enerzijds een soort van overzichtspagina van teams hebt, en als je op een team klikt, dat je een detailpagina te zien krijgt van het betreffende team met een lijstje van alle spelers, en de spelers die in de opstelling van het team staan zijn aangevinkt. Maar dit laatste kan dus met een enkele query.
Gewijzigd op 09/02/2020 22:51:10 door Thomas van den Heuvel
 
Bryan De Baar

Bryan De Baar

10/02/2020 00:41:45
Quote Anchor link
Dank Jop voor het meedenken!

Thomas:

Als ik de details van Ben wil tonen dan wil ik de naam Ben 1 keer tonen.
Daarnaast moeten alle teams worden geladen (dit zijn checkboxes) en waar ben in voorkomt die moeten zijn aangevinkt.

De query voor de checkboxes hebben we in de andere topic behandeld maar ik krijg de naam Ben niet enkel terug.
Hij doet de naam of 2 keer teruggeven omdat hij in 2 teams voorkomt, en als ik dan de naam groepeer krijg ik van de teams alleen geel en rood terug.
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2020 15:40:30
Quote Anchor link
Maar wat is het precieze doel van de pagina dan?

Als je echt alles wilt tonen - alle teams met alle lineups (of per speler tot welk team zij behoren?) - dan lees je toch gewoon alles uit in een of meer queries en bouw je in PHP wat kleine datastructuren (in arrays)?

Maar als ik het goed begrijp is dit dus een soort van bewerkpagina. Wil je echt alle data tegelijkertijd kunnen wijzigen? Dit wordt al snel een onoverzichtelijke brei, zo niet visueel dan wel in code?

Ik zou voor een wat simpelere indeling gaan, waarbij je bijvoorbeeld ofwel alle data van een (enkele) speler wijzigt, een (enkel) team of wat dan ook. Het compartimenteren van informatie werkt doorgaans makkelijker.

Uiteraard kun je wel (totaal)overzichten uitdraaien met al deze informatie, maar die zijn dan "read only".

Ook is het handig om hier eerst "functioneel" over na te denken - wat wil je precies bereiken met zo'n pagina. Dan heb je namelijk ook een beter beeld van wat je gaat maken.

Het bovenstaande voorbeeld klopt ook niet? Je zegt dat je het groene en rode team aangevinkt wilt hebben, maar er is geen enkele speler (in jouw dataset) die in beide lineups staat? Speler 2 (Mike) is onderdeel van team geel (1) en rood (4).

Vandaar ook mijn verwarring - je hebt het over een pagina waarin alle teams getoond zouden moeten worden, maar in de query staat een verwijzing naar een specifieke speler (AND lineups.pid = 2). Dat rijmt niet helemaal? Of wil je één overzicht waarbij alle spelers per teams aangevinkt staan? Dus nogmaals: hoe zou de indeling van deze pagina moeten zijn, en lijkt het je echt een goed idee om zo alles bij elkaar te gooien?
 
Jop B

Jop B

10/02/2020 16:50:11
Quote Anchor link
Ik denk dat hij bedoeld:

Hi Thomas,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
Naam: Mike

Opgesteld in groep(en):
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
<label><input type="checkbox" checked="checked">Groen</label>
<label><input type="checkbox" checked="checked">Rood</label>
Gewijzigd op 10/02/2020 17:30:45 door Jop B
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2020 17:35:03
Quote Anchor link
@Jop ja maar dat precieze vraagstuk is al in de eerdergenoemde thread behandeld, dus ik ga er daarom vanuit dat het hier een andere indeling betreft.
 
Jop B

Jop B

10/02/2020 18:09:17
Quote Anchor link
Quote:
De query voor de checkboxes hebben we in de andere topic behandeld maar ik krijg de naam Ben niet enkel terug.


Wat ik opmaak uit zijn vraag hier is dat als hij de naam van de speler (player) toevoegt aan zijn bestaande query dat deze dan 2x voorkomt in het resultaat als we uitgaan van id: 2 = Mike

Daarom heb ik bovenstaand voorbeeld gegeven om 2 aparte queries te maken: 1 voor de naam en 1 voor de teams met checkboxes.

In zijn eerste bericht geeft hij als voorbeeld dit aan als resultaat te willen ontvangen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
1maal de naam //vraagstelling in dit topic
"Mike"

en de checkboxes van de teams //ander topic behandeld
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
<label><input type="checkbox" checked="checked">Groen</label>
<label><input type="checkbox" checked="checked">Rood</label>


Dan kan ie toch het beste 2 queries maken of ben ik dan fout het denken?
 
Thomas van den Heuvel

Thomas van den Heuvel

10/02/2020 19:08:10
Quote Anchor link
Mja, je kunt altijd dingen opsplitsen in meerdere queries als dat praktischer is. Het is niet het einde van de wereld als je wat meer simpele queries hebt. In dit geval - als je een soort van totaaloverzicht wilt - dan kun je ook wat arraytjes bouwen:
- een array met speler info id => data
- een array met team info id => data
- een koppelarray met een "mapping" speler => team of vice versa

Hiermee ontkoppel je ook wat logica van de weergave en is het daar enkel een kwestie van het uitvoeren van loopjes over zo'n array, en dat je checkboxen aanvinkt door te controleren of een array index/waarde bestaat.

Hoe je dat verder precies uit je database trekt maakt dan ook geen biet meer uit, dus als het eenmaal in dat soort arrays zit kun je altijd nog over de optimalisatie van je queries nadenken zonder dat dat van invloed is op de weergave, en kun je dit in afzondering aanpassen, zolang dit maar dezelfde arrays oplevert. Zoals vanouds: verdeel en heers.
Gewijzigd op 10/02/2020 19:09:56 door Thomas van den Heuvel
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/02/2020 18:31:07
Quote Anchor link
Bryan De Baar op 08/02/2020 22:43:47:
De voorlaatste regel in de query GROUP BY players.name zorgt ervoor dat de data niet word weergegeven zoals ik zou willen.

Dat klopt, de SQL-standaard stelt dat alle kolommen die niet in een aggregate functie staan moeten worden vermeld in de GROUP BY, tenzij ze volledig afhankelijk zijn van een kolom die er wel in voorkomt. In MySQL heb je de FULL_GROUP_BY flag waarmee je dit aan of uit kan zetten.
Bryan De Baar op 08/02/2020 22:43:47:
Maar ik wil de player naam 1 keer laten voorkomen in het resultaat, ik dacht dan gebruik ik GROUP BY maar dit levert als resultaat op
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<label><input type="checkbox">Geel</label>
"Ben"
<label><input type="checkbox" checked="checked">Rood</label>


Het resultaat dat ik graag zou willen is
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
"Ben"
<label><input type="checkbox">Blauw</label>
<label><input type="checkbox">Geel</label>
<label><input type="checkbox" checked="checked">Groen</label>
<label><input type="checkbox" checked="checked">Rood</label>

Wat moet ik aanpassen hiervoor?

Dat de naam meerdere keren voorkomt in het resultaat is inherent aan MySQL, dit is zonder ingrepen niet te veranderen, het simpelste is om dit in php af te vangen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$result
= mysqli_query($connection, $sql);
$flag = 0;
while($row = mysqli_fetch_assoc($result)){
        if (!$flag) {
        echo $row['name'];
        $flag = 1;
    }

        $checked = ($row['tid'] === NULL ? '' : ' checked="checked"');
    
?>

<label>
    <input type="checkbox" <?php echo $checked; ?>><?php echo $row['teamname']; ?>
</label><?php
}
?>

Dan over de query zelf, in deze situatie lijkt het mij handiger een CROSS JOIN te gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT p.player_name, t.team_name, l.player_id
FROM players p
CROSS JOIN teams t
LEFT JOIN lineups l ON l.player_id = p.player_id AND l.team_id = t.team_id
WHERE p.player_id = 2

De CROSS JOIN geeft je alle mogelijke combinaties van teams / spelers, dit heeft als voordeel dat je dit kan gebruiken voor de benadering van zowel spelers en teams. Plus dat het ook werkt voor meerdere spelers en/of team (dit in tegenstelling met de oplossing via de LEFT JOIN)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.