recursief zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior C# Software Ontwikkelaar te Zaandam

Bedrijfsomschrijving Deze werkgever heeft als missie om haar klanten op ICT-gebied volledig te ontzorgen. Ze zijn een ICT bedrijf met een verscheidenheid aan ICT oplossingen waaronder Cloud oplossingen en een groot deel van het werk is gericht op software realisatie. Voor de Enterprise-klanten voert het relatief kleine ontwikkelteam waar jij deel uit van kan gaan maken binnen deze organisatie te Zaandam de grootste opdrachten uit. Niet alleen websites en complexe webapplicaties maar ook mobile apps, web services en complete systeemintegraties! Je moet dan denken aan Dynamics, Sharepoint en Salesforce. Je komt hier terecht in een relatief kleine organisatie met ontzettend

Bekijk vacature »

React developer Inhouse cloudplatform

Functie De functie: Als front-end developer kom je te werken naast 2 andere front-end/React developers, waaronder één senior. Een hele mooie kans dus om in korte tijd veel nieuwe kennis en ervaring op te doen. Ze hebben momenteel veel werk hierin en daarom willen ze het team graag uitbreiden. Het is van belang dat je, zeker gezien het vele thuiswerken, in ieder geval al een aantal projecten hebt gedaan in React. Taken waar je aan kunt denken zijn het ontwikkelen van client-applicaties o.b.v. HTML5, React en andere open standaarden. Ook ben je nauw betrokken bij het implementeren van designs o.b.v.

Bekijk vacature »

Database Developer

Functie omschrijving Voor een logistieke dienstverlener in omgeving Zuid Beijerland zijn wij op zoek naar versterking. Weet jij als geen ander systemen aan elkaar te koppelen en heb jij goede kennis van SQL en UML, lees dan snel verder! Jouw taken zien er als volgt uit: Je bent in deze rol voornamelijk verantwoordelijk voor het bouwen, implementeren en beheren van koppelingen tussen de bestaande systemen (zowel business 2 business als application 2 application). Daarnaast inventariseer je de wensen van in- en externe klanten, die je vervolgens samen met je collega's, vertaalt naar technische specificaties, die jullie zelf ontwikkelen en implementeren.

Bekijk vacature »

PHP Developer

Functie Middels Scrum en sprints bouw jij in deze functie mee aan complexe webapplicaties en ons SaaS platform. Hierbij hoort ook architectuur tot een van je taken. Daarnaast ben je één van de leden van het Scrum team. Dat betekent dat je naast je kerntaken ook in contact staat met de product owner. Oftewel, je bent bij het gehele ontwikkelproces betrokken. Tools die hierbij gebruikt worden zijn o.a. PHP, Symfony en Git. Eisen • Minimaal HBO werk- en denkniveau • Minimaal 3 jaar aantoonbare ervaring met PHP • Kennis en ervaring Symfony (Laravel is pré) & Lando • Kennis van

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij een team met 12 programmeurs. Jullie zijn verantwoordelijk voor het huidige platform van deze organisatie. Als team werken jullie in tweewekelijkse sprints en starten jullie iedere dag met een stand-up. Jij werkt samen met jouw team aan het uitbreiden van het huidige platform door middel van nieuwe features. Daarnaast zorg jij er samen met jouw team voor dat het platform veilig is en gebruiken jullie de nieuwste technieken om deze veiligheid te waarborgen. Zo maken jullie gebruik van C# .NET, .NET Core, React, Azure, Kubernetes, ASP.NET, MVC. Jij gaat aan het werk in

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Senior Lead Front End Developer

Functieomschrijving Voor Stichting Waternet zijn wij op zoek naar een senior Lead Front End Developer. Binnen het DevOps team Online zijn we op zoek naar een Senior Lead Front End developer met kennis van toegankelijkheid. Deze developer zal zich bezighouden met development van webpaginas die in verbinding staan met systemen uit het back office. Taken Ontwerpen, ontwikkelen, implementeren, documenteren en beheren van webapplicaties in een Azure-omgeving Debuggen, analyseren en oplossen van problemen in de OTAPomgevingen Je participeert in het DevOpsTeam Online voor het verder uitwerken en implementeren van gebruikerswensen Je bent betrokken bij toegankelijkheid audits en het implementeren van WCAG

Bekijk vacature »

Front-end Developer Angular

Dit ga je doen Jouw taken als Front End Developer bestaan uit: Het ontwikkelen van maatwerkoplossingen voor klanten; Het meedenken over nieuwe tools en technieken; Het begeleiden van junioren; Het meewerken aan diverse projecten; Het meedenken in UX/UI design. Hier ga je werken Als Front-End Developer ga je in een Scrum team aan de slag met de nieuwste digitale technologieën om klanten en overheden over de hele wereld te ondersteunen met het ondersteunen van hun software, veelal op het gebied van watermanagement en infra. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

Laravel PHP developer in een jong team

Bedrijfsomschrijving Als je op zoek bent naar een werkplek waar plezier en uitdaging hand in hand gaan, dan is dit bedrijf de juiste keuze voor jou. Hier kun je werken aan uitdagende projecten en krijg je als developer veel verantwoordelijkheid. Het bedrijf waardeert kwaliteit boven kwantiteit en richt zich op het ontwikkelen van hoogwaardige applicaties en websites waar klanten enthousiast over zijn. Dit bedrijf is vooruitstrevend en streeft naar het leveren van de best mogelijke resultaten voor hun klanten. Als medior PHP ontwikkelaar met 3 jaar ervaring ben jij de persoon die we zoeken. Je krijgt hier de kans om

Bekijk vacature »

Senior Javascript developer

Functie Het platform is gebouwd in een moderne JavaScript stack, die gebruikt maakt van:  React.js  Redux  TypeScript  Node.js  Google Cloud functions (node.js)  Semantic UI Alle code wordt getest en beoordeeld door collega developers. De continuous integration pipeline maakt het mogelijk om elke dag waarde te leveren aan hun klanten. Het ontwikkelproces is pragmatisch en gebaseerd op Scrum. Wat je zult doen: Ten eerste kun je nadrukkelijk jouw eigen stempel drukken op de technologie, het product en de cultuur van het bedrijf. Je bent bezig met het uitwerken van de architectuur van nieuwe functionaliteiten op

Bekijk vacature »
Jan R

Jan R

12/12/2021 09:53:52
Quote Anchor link
Hi

Ik wil php tegenstanders laten berekenen maar ik kom er niet uit.
Eerst heb ik data. Komt normaal uit de database maar om hier te posten even json gebruikt. De spelers zijn gesorteerd op hun punten.
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
[
{"id":"147","naam":"Philippe","punten":"2048","wit":"2","zwart":"2"},
{"id":"122","naam":"Thomas","punten":"2030","wit":"1","zwart":"1"},
{"id":"117","naam":"Freddy","punten":"2028","wit":"2","zwart":"2"},
{"id":"115","naam":"Eddy","punten":"2020","wit":"2","zwart":"2"},
{"id":"119","naam":"Jan","punten":"2016","wit":"2","zwart":"2"},
{"id":"123","naam":"Yvonne","punten":"1984","wit":"1","zwart":"2"},
{"id":"148","naam":"Pierre Matthys","punten":"1922","wit":"2","zwart":"1"},
{"id":"126","naam":"Jacques","punten":"1920","wit":"2","zwart":"1"}
]
//wit en zwart is het aantal keren met respectievelijke kleur gespeeld
{
    "147":{"id":"147","naam":"Philippe","aantaltegenstanders":3,"punten":"2048","tegenstanders":{"115":1,"117":0,"119":1,"122":0,"123":0,"126":1,"147":0,"148":0}},
    "122":{"id":"122","naam":"Thomas","aantaltegenstanders":2,"punten":"2030","tegenstanders":{"115":1,"117":0,"119":0,"122":0,"123":0,"126":1,"147":0,"148":0}},
    "117":{"id":"117","naam":"Freddy","aantaltegenstanders":3,"punten":"2028","tegenstanders":{"115":0,"117":0,"119":1,"122":0,"123":0,"126":1,"147":0,"148":1}},
    "115":{"id":"115","naam":"Eddy","aantaltegenstanders":3,"punten":"2020","tegenstanders":{"115":0,"117":0,"119":0,"122":1,"123":1,"126":0,"147":1,"148":0}},
    "119":{"id":"119","naam":"Jan","aantaltegenstanders":4,"punten":"2016","tegenstanders":{"115":0,"117":1,"119":0,"122":0,"123":1,"126":0,"147":1,"148":1}},
    "123":{"id":"123","naam":"Yvonne","aantaltegenstanders":3,"punten":"1984","tegenstanders":{"115":1,"117":0,"119":1,"122":0,"123":0,"126":0,"147":0,"148":1}},
    "148":{"id":"148","naam":"Pierre","aantaltegenstanders":3,"punten":"1922","tegenstanders":{"115":0,"117":1,"119":1,"122":0,"123":1,"126":0,"147":0,"148":0}},
    "126":{"id":"126","naam":"Jacques","aantaltegenstanders":3,"punten":"1920","tegenstanders":{"115":0,"117":1,"119":0,"122":1,"123":0,"126":0,"147":1,"148":0}}
}
//het nummer bij tegenstanders is het aantal al keren tegen elkaar gespeeld.


De bedoeling is dat je pas tegen elkaar gaat spelen als je nog niet tegen elkaar of zo weining mogelijk tegen elkaar al gespeeld hebt.

In bijgevoegde data is het dus mogelijk om te komen tot resultaat
Quote:
Philippe-Thomas
Freddy-eddy
Jan-Pierre
Yvonne-Jacques

Wat ik echter bedenk als code het komt nooit uit.
Manueel lukt het me wel dus zou ik het ook moeten kunnen schrijven in php toch zou je denken maar dus niet :(.

Hopelijk heeft iemand een ideetje om te helpen.

Jan
Gewijzigd op 13/12/2021 08:05:41 door Jan R
 
PHP hulp

PHP hulp

27/05/2026 02:20:56
 
Rob Doemaarwat

Rob Doemaarwat

12/12/2021 10:32:53
Quote Anchor link
Even uit de losse pols:
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
<?php

$ids
= array_keys($data); //$data is die 2e tabel
$default_scores = array_fill_keys($ids,0); //standaard tegen niemand gespeeld

foreach($data as $id => $player){ //per speler gaan bekijken
  $scores = $player['tegenstanders'];
  unset($scores['totaal']);
  $scores = array_merge($default_scores,$scores); //nu voor iedereen een score
  asort($scores); //sorteren op score (minste vooraan)
  $opponents = array_keys($scores); //tegenstanders geordend
  $opponent = array_shift($opponents); //tegenstander met minste partijen

  //verder afhandelen/opslaan/enz


}

?>
 
Jan R

Jan R

12/12/2021 11:21:49
Quote Anchor link
Sorry snap het niet.
Wie speelt nu tegen wie?
Gewijzigd op 12/12/2021 11:22:04 door Jan R
 
Rob Doemaarwat

Rob Doemaarwat

12/12/2021 13:47:26
Quote Anchor link
$id speelt tegen $opponent

Dan moet je verderop wel controleren dat zowel $id als $opponent niet meer aan iemand anders gekoppeld kunnen worden (een lijstje met $fulfilled bijhouden, en daarvoor de $id's overslaan, en deze uit $opponents halen).

Of is het dan nog weer de bedoeling dat als A tegen B of C kan spelen (beiden nog nooit tegen gespeeld), maar D al wel tegen C heeft gespeeld, dat ie dan ook nog zo wijs is om A aan C te koppelen, zodat B dan tegen D kan?
 
Jan R

Jan R

13/12/2021 08:15:51
Quote Anchor link
Tof dat je elke tegenstander op 0 partijen plaats. Ik werkte met isset
Juist dat je Totaal verwijderd. Stond op verkeerde plaats.

oorspronkelijke data aangepast.

Je basis is ongeveer hetzelfde als ik had echter ik blijf vastlopen.
ik heb ofwel onvolledige data, niet alle spelers gevonden, of kom in een eindeloze lus.


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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
    $ids
= array_keys($partijen);//partijen oorspronkelijke data
    {
        foreach($ids as $id) {//niemand speelt
            $speelt[$id]=false;
        }

        $i=$j=0;
        while ($i<count($ids)) {//loop door alle spelers
            $id1=$ids[$i];
            if(!$speelt[$id1]) {
                $j=0;
                while ($j<count($ids)) {//zoek tegestander
                    $id2=$ids[$j];
                    if(!$speelt[$id2]) {
                        if($id1!=$id2) {/niet tegen jezelf
                            if($partijen[$id1]['tegenstanders'][$id2]<=$verschilWZ) {// aantal parttijen < max toegelaten
                                $stappen[] = array($i,$j);//bewaar stappen om terug te keren indien lus niet volledig ok
                                $speelt[$id1]=$speelt[$id2]=true;//deze 2 spelers spelen nu wel
                                $borden[] = array($partijen[$id1],$partijen[$id2]);//bepaal bord. exact 2 spelers
                                if(alltrue($speelt)) {//eenvoudige lus welke kijkt of alle items in array true zijn
                                    break 2;// spring uit de 2 lussen
                                }
                                break;//ga naar volgende speler
                            }
                        }
                    }

                    $j++;
                }

                $j=0;
            }

            if($i==(count($ids)-1)) {//net voor einde kijken alles OK
                if(alltrue($speelt)) {
                    break;//OK dus uit lus
                }else{
                    $a = end($stappen);// niet ok stap terug
                    $i=($a[0]-1);
                    $j=($a[1]+1);
                    $speelt[$ids[$a[0]]] = $speelt[$ids[$a[0]]] = false;//spelers apelen toch niet
                    array_pop($borden);//verwijder bord
                }
            }

            $i++;
        }
    }

var_dump($borden);//wordt later opnieuw uitgewerkt :)
?>


Jan
 

15/12/2021 09:44:52
Quote Anchor link
Ik geloof niet dat ik de vraag begrijp, maar dat zal aan mij liggen.

In je voorbeeld zeg je "wit en zwart is het aantal keren met respectievelijke kleur gespeeld", en "het nummer bij tegenstanders is het aantal al keren tegen elkaar gespeeld".

Kijk ik naar Philippe, dan heeft hij 2x met wit gespeeld en 2x met zwart, dus 4x in totaal.
Maar als ik naar de tweede helft kijk, dan zie ik dat hij maar 3x heeft gespeeld, met ID's 115, 119, 126.

Hoe zit dat?
 
Jan R

Jan R

15/12/2021 13:55:33
Quote Anchor link
In de geleverde data staan enkel de spelers welke hun deelname bevestigd hebben. Ze kunnen dus ook tegen iemand anders gespeeld hebben. Totaal is i de berekening dus niet relevant maar wel nodig om te tonen in de browser.

De berekening start enkel als het aantal spelers paar is.
 

20/12/2021 21:41:35
Quote Anchor link
Ik heb in een testdatabase twee tabellen gemaakt die zouden moeten lijken op de tabellen in je eigen database:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-- SQL dump van testdatabase

CREATE TABLE `speler` (
  `id` int(10) UNSIGNED NOT NULL COMMENT 'ID',
  `naam` text NOT NULL COMMENT 'Naam',
  `punten` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Punten'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Spelers';

INSERT INTO `speler` (`id`, `naam`, `punten`) VALUES
(115, 'Eddy', 2020),
(117, 'Freddy', 2028),
(119, 'Jan', 2016),
(122, 'Thomas', 2030),
(123, 'Yvonne', 1984),
(126, 'Jacques', 1920),
(147, 'Philippe', 2048),
(148, 'Pierre Matthys', 1922);

CREATE TABLE `wedstrijd` (
  `id` int(10) UNSIGNED NOT NULL COMMENT 'ID',
  `wit` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Wit',
  `zwart` int(10) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'Zwart'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Wedstrijden';

INSERT INTO `wedstrijd` (`id`, `wit`, `zwart`) VALUES
(1, 147, 115),
(2, 147, 126),
(3, 122, 115),
(4, 122, 126),
(5, 117, 119),
(6, 117, 148),
(7, 115, 123),
(8, 119, 147),
(9, 119, 148),
(10, 123, 119),
(11, 148, 123),
(12, 126, 117);

ALTER TABLE `speler`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `wedstrijd`
  ADD PRIMARY KEY (`id`),
  ADD KEY `wedstrijd_speler_wit` (`wit`),
  ADD KEY `wedstrijd_speler_zwart` (`zwart`);

ALTER TABLE `speler`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', AUTO_INCREMENT=149;

ALTER TABLE `wedstrijd`
  MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', AUTO_INCREMENT=13;

ALTER TABLE `wedstrijd`
  ADD CONSTRAINT `wedstrijd_speler_wit` FOREIGN KEY (`wit`) REFERENCES `speler` (`id`) ON UPDATE CASCADE,
  ADD CONSTRAINT `wedstrijd_speler_zwart` FOREIGN KEY (`zwart`) REFERENCES `speler` (`id`) ON UPDATE CASCADE;

Daarin kan je met een query een ranking maken van spelercombinaties die de minste wedstrijden hebben gespeeld:
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
WITH `geselecteerd` AS (
  SELECT 147 AS `id`
  UNION SELECT 122
  UNION SELECT 117
  UNION SELECT 115
  UNION SELECT 119
  UNION SELECT 123
  UNION SELECT 148
  UNION SELECT 126
)
SELECT DISTINCT
  LEAST(`speler`.`id`, `tegenstander`.`id`) AS `speler_id`,
  GREATEST(`speler`.`id`, `tegenstander`.`id`) AS `tegenstander_id`,
  COUNT(`wedstrijd`.`id`)
    OVER (PARTITION BY `speler`.`id`, `tegenstander`.`id`) AS `wedstrijden`
FROM `geselecteerd` AS `speler`
  JOIN `geselecteerd` AS `tegenstander`
    ON `speler`.`id` != `tegenstander`.`id`
  LEFT JOIN `wedstrijd`
    ON (`wedstrijd`.`wit` = `speler`.`id`
      AND `wedstrijd`.`zwart` = `tegenstander`.`id`)
    OR (`wedstrijd`.`wit` = `tegenstander`.`id`
      AND `wedstrijd`.`zwart` = `speler`.`id`)
ORDER BY `wedstrijden`;

Ik was begonnen met recursief zoeken in MySQL maar de mogelijkheden zijn beperkter dan in andere databases als PostgreSQL en het is toch nog even puzzelen. Misschien is het laatste stukje logica eenvoudiger te maken in PHP.

Overigens zijn er meer mensen die dit probleem hebben willen oplossen in SQL.
 
Jan R

Jan R

20/12/2021 23:05:07
Quote Anchor link
Bedankt maar ik heb nooit gezegd dat het in sql moest zijn :) Daarom had ik er ook een json van gemaakt.

sql loopt al vast op 1° woord. 'with'
 

27/12/2021 20:53:22
Quote Anchor link
Klopt, je zei "Eerst heb ik data. Komt normaal uit de database maar om hier te posten even json gebruikt." dus het is logischer om het dan maar meteen goed uit de database te halen. Waar heb je een database anders voor?

WITH is onderdeel van een CTE, MySQL loopt daarmee achter. Je moet minimaal MySQL 8 hebben, anders moet je de query op de ouderwetse manier herschrijven, en jezelf herhalen in het FROM statement (dat kan dan wel weer beter met PHP):

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
26
27
28
29
30
31
32
SELECT DISTINCT
  LEAST(`speler`.`id`, `tegenstander`.`id`) AS `speler_id`,
  GREATEST(`speler`.`id`, `tegenstander`.`id`) AS `tegenstander_id`,
  COUNT(`wedstrijd`.`id`)
    OVER (PARTITION BY `speler`.`id`, `tegenstander`.`id`) AS `wedstrijden`
FROM
  ( SELECT 147 AS `id`
    UNION SELECT 122
    UNION SELECT 117
    UNION SELECT 115
    UNION SELECT 119
    UNION SELECT 123
    UNION SELECT 148
    UNION SELECT 126
  ) AS `speler`
  JOIN
  ( SELECT 147 AS `id`
    UNION SELECT 122
    UNION SELECT 117
    UNION SELECT 115
    UNION SELECT 119
    UNION SELECT 123
    UNION SELECT 148
    UNION SELECT 126
  ) AS `tegenstander`
    ON `speler`.`id` != `tegenstander`.`id`
  LEFT JOIN `wedstrijd`
    ON (`wedstrijd`.`wit` = `speler`.`id`
      AND `wedstrijd`.`zwart` = `tegenstander`.`id`)
    OR (`wedstrijd`.`wit` = `tegenstander`.`id`
      AND `wedstrijd`.`zwart` = `speler`.`id`)
ORDER BY `wedstrijden`;
Gewijzigd op 27/12/2021 20:54:36 door
 



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.