recursief zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

C# .NET Developer

Functieomschrijving Voor dit leuke softwarre bedrijf in de omgeving Vught zijn we per direct op zoek naar een C#/.NET Developer. Is development jouw passie en doe je dit graag met C#/.NET? Lees dan snel verder! Jou werkzaamheden zullen zijn: Zorgen voor de optimalisatie van de huidige software en het automatiseren van bedrijfsprocessen. Naar aanleiding van de wensen van de klant ga je, met je collega's op zoel naar passende oplossingen en je werkt dit uit tot een mooi eindproduct. Je gaat webshops, websites en webapplicaties ontwikkelen door middel van ASP.NET, C# en MVC Framework. Bedrijfsprofiel Deze opdrachtgever houdt zich bezig

Bekijk vacature »

Scrum Master

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Scrum master op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je begeleidt twee teams binnen de afdeling Platform Services (PLS). Je helpt mee de devops manier van werken van de teams verder door te ontwikkelen. Je helpt de PO bij het managen van de product backlog; het voorbereiden van

Bekijk vacature »

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

Bekijk vacature »

Senior PHP developer met ambities tot Software Arc

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

PHP developer

Functie Voor een opdrachtgever in omgeving Leiden zijn wij op zoek naar een PHP developer die affiniteit heeft met C++. Ben jij reeds afgestudeerd of heb je al een paar jaar ervaring? Lees snel verder en kijk of dit iets voor jou is! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

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

26/04/2024 02:55:58
 
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
 
Ad Fundum

Ad Fundum

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.
 
Ad Fundum

Ad Fundum

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'
 
Ad Fundum

Ad Fundum

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 Ad Fundum
 



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.