Records uit tabel ordenen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Software Developer / .NET / Duurzaamheid @

2021-08-12 iSense Senior Software Developer / .NET / Duurzaamheid Ben je een ervaren .NET Developer en ben je op zoek naar een uitdagende rol met veel vrijheid? Wil jij aan de slag bij een bedrijf die duurzaamheid hoog in het vaandel heeft staan? Lees dan snel verder! ISRI49769 Nieuw Organisatie Werken bij dit bedrijf betekent dat je onderdeel wordt van een grote internationale organisatie, met lokale focus. In Nederland werken er circa 1500 medewerkers bij deze organisatie en samen werken zij aan de meest innovatieve projecten. Denk hierbij aan objecten die zichzelf informatie verschaffen om de toekomst te voorspellen! Iedere

Bekijk vacature »

Doorgewinterde .NET Developer

Wie zijn wij 2-Control is een IT-bedrijf dat audit, interne controle en compliance diensten en add-ons voor Dynamics 365 Business Central en Finance & Operations levert. Wij ontwikkelen Authorization Box, een cloudoplossing waarmee gebruikers rechten eenvoudig kunnen beheren en monitoren. Dit wordt gebouwd door een klein ontwikkelteam, momenteel gefocused op de migratie naar .NET 5 en het operationeel houden van het product. Hoewel gevestigd in een oud gemeentehuis in Breda (recent gerenoveerd), is de bedrijfssfeer een stuk minder formeel dan wat de voorgevel doet vermoeden. Wie zoeken wij Als je lang genoeg in code bezig bent geweest om patronen, best

Bekijk vacature »

Technisch Applicatiebeheerder Westfries Archief

Technisch Applicatiebeheerder Westfries Archief Het Westfries Archief is hét regionaal historisch centrum voor Westfriesland. De organisatie ondersteunt de zeven aangesloten gemeenten bij het digitaal duurzaam beheer van informatie. Wat ga je doen? Als technisch applicatiebeheerder ben je verantwoordelijk voor het beheer van de systemen van het Westfries Archief. Dit betreft het technisch beheer van de servers, de netwerken, datalijnen, randapparatuur en werkstations. Verstoringen in de infrastructuur help je oplossen en monitoring van systemen voer je samen met onze leveranciers uit. Je draagt verbeteringen aan, volgt innovaties op de voet en zorgt voor continuïteit van de systemen. Naast technische kennis heb

Bekijk vacature »

Backend Developer PHP / Javascript

Voor wie je gaat werken: Wij maken kaartjes voor onze klanten. Wil jij werken als backend developer? Heb jij ervaring met PHP? Vaste baan: Backend Developer PHP Javascript 2.700 - 4.000 Backend Developer Wij zijn een frisse onderneming die actief is op de Nederlandse web-to-print markt, vooral als het gaat om wenskaarten. Ons bedrijf is regelmatig onderscheiden door haar innovativiteit en klantvriendelijkheid, wat we graag zo willen houden. Bij ons werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Wij staan open voor elke

Bekijk vacature »

C# .NET Developer @ Lelystad

2021-06-21 iSense C# .NET Developer Wil jij aan de slag als C# .NET software ontwikkelaar binnen een groeiende organisatie en je richten op uitdagende projecten voor verschillende klanten? Reageer dan snel! ISK49303 Nieuw Organisatie Als .NET Developer kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven. De organisatie heeft ook een adviserende

Bekijk vacature »

Sr Outsystems Ontwikkelaar ERP Javascript C# / C#

Wie wordt jouw werkgever?: Wij ontwikkelen ERP systemen. Ben jij een gedreven Outsystems Ontwikkelaar? Heb je kennis van C#? Vaste baan: Sr Outsystems Ontwikkelaar ERP C# 3.500 - 4.200 Senior Outsystems Ontwikkelaar Wij ontwikkelen ERP systemen voor bouworganisaties. Dit doen wij tegen de hoogst mogelijke kwaliteit. Werken bij ons betekent werken in een start-up omgeving met veel groei mogelijkheden. Doorleren wordt op prijs gesteld en gefaciliteerd. Daarbij geven we jou veel verantwoordelijkheden en mogelijkheden om eigen initiatieven uit te voeren. Bij ons werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als

Bekijk vacature »

C# Python Fullstack Developer / Grasshopper

Wie wordt jouw werkgever?: Wij bieden woningen en appartementen aan. Ben jij een ervaren fullstack developer? Heb jij ervaring met Grashopper? Vaste baan: C# Python Fullstack Developer Rhino 2.800 - 4.500 Fullstack Developer We leven het liefst in een huis waarin we ons onbezorgd en thuis voelen en waar genoeg financiële ruimte overblijft om leuke dingen te doen. Wij begrijpen dat. Bovendien gaan wij nog een stap verder: wij geloven dat een huis niet alleen gaat over het vinden van ruimte voor nu, maar ook over het behouden van ruimte voor toekomstige generaties. Ons doel? Een comfortabel leven voor vandaag,

Bekijk vacature »

Delphi Developer

As a Delphi Developer you work together with other development teams to make our back-office applications work as optimal as possible. How do I become a Delphi Developer at Coolblue? You work together with other development teams to make our back-office applications work as optimal as possible, being extending features or migrating them to APIs. Everything to put a smile in our colleagues' faces! Although you are a Delphi Developer, you are not averse to a some C# or JavaScript. Would you also like to become a Delphi Developer at Coolblue? Read below if the job suits you. You enjoy

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 »

GIS Developer @ Utrecht

2021-07-29 iSense GIS Developer Ben jij een Software Developer met minimaal drie jaar ervaring en wil jij aan werken aan toonaangevende GIS software? Spreekt het jou aan om binnen een innovatief ingenieursbureau te werken aan uiteenlopende projecten voor diverse grote en bekende namen in Nederland? Lees dan nu verder! ISHU48803 Organisatie Als GIS Developer kom je te werken bij een high-tech ingenieursbureau in de regio van Utrecht. Al ruim 15 jaar werken ze aan de eigen ontwikkeling van innovatieve applicaties op het gebied van mobiliteit en infrastructuur. Met al hun jaren ervaring bedenken en ontwikkelen ze geografische oplossingen voor grote

Bekijk vacature »

IT-Traineeship junior software programmeur

Zoek jij een stevige uitdaging en de mogelijkheid om veel nieuwe dingen te leren in een dynamisch vakgebied? Doe mee aan ons IT Professional Program en ontwikkel jezelf tot software engineer! Je begint met een opleidingstraject van ongeveer 4 maanden. Hierin ga je aan de slag met verschillende technieken die je op conceptueel niveau leert te overzien en interpreteren. Onderwerpen die aan bod komen zijn o.a. programmeren (Java/C#/Python), Object Oriëntatie, Databases, Webservices & webtechnologieën, Domain Driven Design en Continuous Integration/Continuous Delivery. Sommige van deze onderdelen sluit je af met een examen en bijbehorende certificering. Het opleidingstraject zelf sluit je af

Bekijk vacature »

Fullstack Developer Ruby

Fullstack Developer Erg leuke baan als Fullstack Ontwikkelaar bij een groeiende scaleup in Fintech te Amsterdam. Hun ambitie is groot. Zij willen de beste online vermogensbeheerder van Nederland zijn. We zoeken daarom IT-collega's die bij ons passen én het verschil kunnen maken. Als medior full-stack-developer word je een belangrijke spil tussen ons eigen front-end-team en het externe back-end-bureau. Een voor ons essentiële functie met veel ruimte voor zelfsturing en eigen inbreng Wie ben jij? Een goed communicerende, 'allround' developer met hbo/wo werk- en/of denkniveau die er 40 uur per week helemaal voor gaat. Iemand die minstens 3 tot 5 jaar

Bekijk vacature »

Senior Java Developer @ Groningen

2021-07-19 iSense Senior Java Developer Wil jij als Senior Java Developer dagelijks meedenken over diverse architectuur oplossingen? Ga jij graag met je collega’s op zoek naar de beste oplossing? Lees dan snel verder! ISRI47150 Nieuw Organisatie Als Senior Java Developer kom je te werken bij een internationaal gerenommeerd onderzoeksinstituut. Dagelijks is dit instituut verantwoordelijk voor de juiste samenwerking, toegankelijkheid en communicatie voor circa 9000 interne gebruikers. In een team van elf ontwikkelaars ben je als Senior Java Developer verantwoordelijk voor het ontwikkelen van functionele ontwerpen naar technische oplossingen. Deze projecten bestaan o.a. projecten zoals het implementeren van Elastic Search en

Bekijk vacature »

Fullstack ontwikkelaar @ Delft

2020-12-23 iSense Fullstack ontwikkelaar Ben jij een ervaren Fullstack ontwikkelaar? Heb je daarbij ervaring op het gebied van Javascript en .Net Core? Lees dan verder! ISAC48652 Nieuw Organisatie Bij het accepteren van dit aanbod kom je terecht binnen een veelzijdige organisatie waar een goede sfeer hangt. Zij zijn gewend dagelijks met elkaar te lunchen en ruimte is voor een potje Mario. Als Fullstack ontwikkelaar ga je je op projectbasis bezighouden met het ontwikkelen van content voor diverse opdrachtgevers. De projecten waar je aan gaat werken zullen verschillende qua omvang. Hierbij kan je rekening houden met een gemiddelde doorlooptijd van een

Bekijk vacature »

Senior Node.js Developer (NL)

Senior Node.js Developer (NL) Den Haag HBO/WO IT Professional "Als Senior Node.js 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 JavaScript en AWS" Wat ga je doen? PostNL is becoming a postal tech company. Als Senior Node.js Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead Engineer, JavaScript Developers en Solution Consultants. Samen zijn jullie verantwoordelijk voor het bouwen aan het Event Management Platform (EMP). Dit platform

Bekijk vacature »
Liefhebber Laravel

Liefhebber Laravel

30/08/2017 11:35:58
Quote Anchor link
Hoi,

Ik heb volgende tabel in mijn databank:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
id parid value
1  0     value 1
2  0     value 2
3  1     sub of 1
4  1     sub of 1
5  2     sub of 2
6  2     sub of 2
7  5     sub of 5


parid is de parent_id en verwijst naar het id in dezelfde tabel
De bedoeling is dat deze herordend kan worden naar deze volgorde:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
1  0     value 1
3  1     sub of 1
4  1     sub of 1
2  0     value 2
5  2     sub of 2
7  5     sub of 5
6  2     sub of 2


Zoals je ziet moeten de parent id's onder de gekoppelde id's komen. (record 1 heeft 2 sub id's, namelijk records 3 en 4, dus die moeten onder die record 1 komen)

Kan ik deze ordening toegepast krijgen in MySQL? Of is het beter te doen in PHP?

Ik werk in Laravel, dus mijn databank data kan als collection behandeld worden.

Ter info, de diepte van de subs kan eindeloos zijn.
 
PHP hulp

PHP hulp

21/09/2021 07:31:15
 
Ivo P

Ivo P

30/08/2017 12:04:24
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT id, parid, value
FROM tabel
ORDER BY parid ASC, id ASC


Toevoeging op 30/08/2017 12:07:04:

ik denk trouwens dat parid nooit 0 zou mogen zijn, aangezien er geen record is met id=0.
Daar zou NULL op zijn plaats zijn.


Daar gaat mijn antwoord ook de mist in: die records met 0 in parid komen bovenaan
 
Liefhebber Laravel

Liefhebber Laravel

30/08/2017 12:46:49
Quote Anchor link
@Ivo P: Betreffende de parid 0 heb je helemaal gelijk. Dit zou inderdaad NULL moeten zijn. Maar als ik dit aanpas, krijg ik nog steeds dezelfde foute ordening:

originele data:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
id parid value
1  NULL  value 1
2  NULL  value 2
3  1     sub of 1
4  1     sub of 1
5  2     sub of 2
6  2     sub of 2
7  5     sub of 5


Resultaat na de query is hetzelfde...

Toevoeging op 31/08/2017 08:55:50:

Iemand een idee alsjeblieft? Misschien bestaat de mogelijkheid om de resultaten als array te bewerken in PHP om zo het gewenste resultaat te bereiken?
 
Ward van der Put
Moderator

Ward van der Put

31/08/2017 09:29:40
Quote Anchor link
Nu parid NULL mag zijn, kun je sorteren met IFNULL():

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
  SELECT *
    FROM tabel
ORDER BY IFNULL(parid, id)


Als parid niet NULL is, dan wordt er gesorteerd op de parid; als parid wél NULL is, dan wordt er gesorteerd op de id.
 
Liefhebber Laravel

Liefhebber Laravel

31/08/2017 10:56:24
Quote Anchor link
Dank u Ward, Maar dit werkt enkel voor de eerste diepte, namelijk alle subs onder de hoofd categorie. Maar extra subs worden niet correct geordend. Bestaat daar ook een oplossing voor?
 
Ben van Velzen

Ben van Velzen

31/08/2017 11:25:13
Quote Anchor link
Dat is een recursieve functie. Eventueel op te lossen met een stored procedure of stored function, of een functie in PHP.
 
Ivo P

Ivo P

31/08/2017 11:33:37
Quote Anchor link
hoe werkt dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
SELECT *
FROM tabel
ORDER BY COALESCE(parid, id) ASC


COALESCE pakt de eerste waarde uit de lijst (parid, id) die niet gelijk is aan null.

Voor de hoofditems pakt hij dus ID om op te sorteren.
 
Liefhebber Laravel

Liefhebber Laravel

31/08/2017 11:56:31
Quote Anchor link
Maar met de COALESCE functie komt mijn record 7 nog steeds niet onder record 5 waarvan het 'child' is
 
Ivo P

Ivo P

31/08/2017 12:57:30
Quote Anchor link
ah het zijn meerdere levels.
had ik overheen gelezen
 
Jan Koehoorn

Jan Koehoorn

31/08/2017 21:15:13
Quote Anchor link
Voorbeeldje met een "harde" array:

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
<?php
$tree
= [
    [
'id' => 1, 'parid' => 0, 'value' => 'value 1'],
    [
'id' => 2, 'parid' => 0, 'value' => 'value 2'],
    [
'id' => 3, 'parid' => 1, 'value' => 'sub of 1'],
    [
'id' => 4, 'parid' => 1, 'value' => 'sub of 1'],
    [
'id' => 5, 'parid' => 2, 'value' => 'sub of 2'],
    [
'id' => 6, 'parid' => 2, 'value' => 'sub of 2'],
    [
'id' => 7, 'parid' => 5, 'value' => 'sub of 5'],
    [
'id' => 8, 'parid' => 5, 'value' => 'sub of 5'],
    [
'id' => 9, 'parid' => 5, 'value' => 'sub of 5'],
];

function
printTree($parid = 0, $tree)
{

    foreach ($tree as $node) {
        if ($node['parid'] === $parid) {
            vprintf('node id: %d, parent id: %d, $value: %s' . PHP_EOL, $node);
            printTree($node['id'], $tree);
        }
    }


    return;
}


printTree(0, $tree);
?>
Gewijzigd op 31/08/2017 21:16:17 door Jan Koehoorn
 
Liefhebber Laravel

Liefhebber Laravel

01/09/2017 14:53:27
Quote Anchor link
Hi Jan, bedankt voor je reactie! Ik heb een oplossing gevonden!

Ik haal alle records uit de tabel (SELECT * FROM tabel ORDER BY id), vervolgens haal ik die array door jouw functie en bouw ik zo een nieuwe, correct geordende array.

Ik werk in Laravel, en laravel gebruikt collecties, dus moest ik de functie even aanpassen: hier mijn oplossing:

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
// Alle rijen binnenhalen
$records = App\Record::->all();

$ids = array();
$teller = 0;
function setorder($parid = 0, $tree){
    global $ids;
    global $teller;
    foreach ($tree as $node) {
        if ($node->main_group_id === $parid) {
            // nieuwe array $ids aanvullen met gegevens
            $ids[$teller]['id'] = $node->id;
            $ids[$teller]['level'] = $node->level;
            $ids[$teller]['final'] = $node->final;
            $teller++;
            setorder($node->id, $tree);
        }
    }
    return $ids;
}
$d = setorder(0, $specs);
// array omzetten naar collectie
$d = collect($d);
dd($d);
 



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.