recursief zoeken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Low Code Developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Voor een leuke opdrachtgever in omgeving Rotterdam zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten in heel het land! Wat ga je hier zoal doen? Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan

Bekijk vacature »

Java Developer

Java Developers opgelet! Bij Luminis zijn ze opzoek naar jou. Lees de vacature en solliciteer direct. Luminis is een software- en technologiebedrijf met meerdere vestigingen. Vanuit deze vestigingen werken 200 professionals aan technisch hoogwaardige oplossingen voor klanten zoals KLM, Nike en Bol.com. Ook ontwikkelt Luminis eigen oplossingen op het gebied van cloud, Internet of Things, data intelligence, e-sports en e-learning. Luminis onderscheidt zich door aantoonbaar voorop te lopen in technologie en innovatie. Luminis heeft drie kernpunten die verankerd zitten in alles wat we doen: het omarmen van nieuwe technologie, meesterschap en kennis delen. Functiebeschrijving First things first! Het is belangrijk

Bekijk vacature »

.NET developer

Functie Als .NET ontwikkelaar ga jij aan de slag bij een van onze klanten actief in de High Tech Industrie. Onze klanten zijn voornamelijk gelokaliseerd in de omgeving van Eindhoven. Wij zijn erg selectief als het gaat om de projecten die wij accepteren en richten ons dan ook alleen op innovatieve en complexe projecten. Omdat onze klanten voornamelijk gespecialiseerd zijn in de machinebouw, werk jij ook vaak dicht tegen de machines aan. Ons team bestaat momenteel uit Embedded engineers, IOT developers en Cloud engineers. Wij werken voornamelijk aan Microsoft projecten waar er gebruik wordt gemaakt van WPF, UWP, .NET Core

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Amersfoort gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Bedrijfsprofiel De organisatie waar je voor gaat werken heeft een onafhankelijk dataplatform ontwikkelt voor de agrarische sector.

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Software Developer

Functie omschrijving In deze functie ga je aan de slag met het door ontwikkelen van de interne software. Zij maken gebruik van een CRM, wat door de hele organisatie gebruikt wordt. Andere taken: Je gaat het CRM-systeem door middel van PHP verder ontwikkelen; Verder bouw je verschillende API's en koppelingen tussen systemen; Ook ga je collega's ondersteunen bij vragen over de software en applicaties; Deelnemen aan overleggen met het development team; Bij interesse is er de mogelijkheid om junioren te gaan begeleiden. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er

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 »

Back-end PHP Software Developer - Juniorfunctie

Functieomschrijving Wij zijn op zoek naar een PHP Software Developer om ons team te versterken en mee te werken aan de ontwikkeling van eigen IOT-oplossingen. In deze functie ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor het uitlezen en managen van sensoren in machines. Je werkt nauw samen met een team van ontwikkelaars en engineers om de beste software-oplossingen te creëren. Jouw werkzaamheden zien er als volgt uit: Je bent in deze rol verantwoordelijk voor het ontwerpen, ontwikkelen en onderhouden van webapplicaties en softwaretoepassingen voor in-house ontwikkelde IOT oplossingen. Je werkt aan complexe databases en back-end

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

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

22/12/2024 08:18:44
 
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.