Category tree

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

Bekijk vacature »

C#.NET developer

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: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Software Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

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 Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

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 »

Developer Angular & Kotlin

Dit ga je doen Het (door)ontwikkelen van mobiele apps en webapplicaties; Het opstellen van technisch ontwerp en het bespreken van ontwerpen met de software architect; Het uitvoeren van werkzaamheden op het gebied van technisch testen; Het in de gaten houden van nieuwe ontwikkelingen op jouw vakgebied en het adviseren van de organisatie hierover. Hier ga je werken Het gaat om een bekend internationaal handelsbedrijf met ruim 800 medewerkers, verdeeld over verschillende deelbedrijven. Deze organisatie is van oorsprong een familiebedrijf, er wordt hard gewerkt, er heerst een no nonsense en doeners mentaliteit, een informele sfeer en er is een mix van

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

Bekijk vacature »

C# .NET Developer

Dit ga je doen Je richt je op het doorontwikkelen en herstructureren van het platform; Je werkt in teamverband en zelfstandig aan uitdagende projecten voor verschillende klanten; Softwareontwikkeling middels C# .NET; Je staat in contact met verschillende opdrachtgevers om de klantwensen te bespreken en deze vervolgens te ontwikkelen; Verbeteren van bedrijfsprocessen; Implementaties. Hier ga je werken 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

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Back-end Software Developer

Functie omschrijving Ben jij op zoek naar een uitdagende development functie bij een klein gespecialiseerd softwarebedrijf? Wil jij graag hybride werken (combi tussen thuis + kantoor), loop jij warm voor maatwerk software en voel jij je prettig in een informele cultuur? Zoek dan niet verder! Reageer direct! Voor een gewilde werkgever in omgeving Tilburg zoeken wij een back-end software developer met een aantal jaar werkervaring. Je gaat werken voor een klein softwarebedrijf dat gespecialiseerd is in de ontwikkeling van integratiesoftware. Jouw werkzaamheden zien er als volgt uit: In een klein team met 4 ontwikkelaars houd jij je bezig met afwisselende

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »
Onbekend Onbekend

Onbekend Onbekend

05/03/2009 20:51:00
Quote Anchor link
Stel, ik heb een tabel met items. Ieder item heeft een id. Ik heb nog een tabel met categorieën, dit is zeg maar een oneindige tree. Iedere categorie kan weer een child zijn van een andere categorie. Ik heb ook een koppel tabel, die een itemId aan een categoryId koppelt. Ik kan de category tabel compleet opnieuw indelen met lft & rgt etc.. (ik snap er totaal niets van), dus dat is geen punt.

Stel, ik heb zo'n tree:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
- 1
   - 2
     - 3
   - 4
     - 5
       - 6
       - 7
     - 8
- 9
etc..
(dit zijn dus de id's van de categorien


Zo kan het oneindig door gaan.
Stel, ik koppel item 1 aan categorie 3 en 4. Dat zijn dus twee records in de koppel tabel. Ik wil uiteindelijk kan voor item 1 dit weergeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
1  2  3
1  4


Zeg maar net als bij nieuws bij T.net. Kan iemand mij misschien helpen met hoe ik dit kan bereiken? Ik weet dat het lukt met gewoon iedere categorie een parent op geven en dan eerst een query om alles van item 1 uit de koppel tabel te halen en vervolgens eerst alle children selecteren met de id's die in de koppel tabel staan en als parentId niet 0 is nog een query en zo een path opbouwen, maar ik zou dit graaaaag met zo min mogelijk queries doen.

Gr. Thomas.
 
PHP hulp

PHP hulp

09/05/2024 15:34:28
 
Kumkwat Trender

Kumkwat Trender

05/03/2009 20:57:00
Quote Anchor link
nog een kolom in je database maken en daarin de toebehoren categorien beheren

dus stel je voor

id's | koppel id's
-------------------
1 |
2 | 1
3 | 1
4 | 2
5 |
6 |


En dat je je script zo bouwt dat je dan zo een output krijgt:

1
- 2
-- 4
- 3
5
6

(misschien is er een andere handigere manier ervoor, de enigste manier dat ik op het moment kan bedenken is dit namelijk)
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
Onbekend Onbekend

Onbekend Onbekend

05/03/2009 21:51:00
Quote Anchor link
Ik snap er niet veel van. Kun je dat misschien nog wat duidelijker uitleggen?

Edit: is het niet het makkelijkste om dit toch met een aantal queries te doen en bij het bewerken op te slaan en direct de output te geven? Maar stel dat ik dan de naam van een categorie bewerk, dan is de output die opgeslagen is niet meer correct. Wat is hiervoor de beste methode?
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Kumkwat Trender

Kumkwat Trender

05/03/2009 22:27:00
Quote Anchor link
Wat ik zei is toch ook goed? welke deel snap je niet van me uitleg?

Gewoon
stel je voor je gaat alle id nummers na
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
<?php
$id
=1;

$koppelid2 = "1";
$koppelid6 = "1";
$koppelid7 = "2";
$koppelid8 = "3";

while ($id <= 10) {
    if(empty(${'koppelid'.$id})) {
        echo $id.'<br>';
    }
elseif(ctype_digit(${'koppelid'.$id})) {
        for($streep=0;$streep<${'koppelid'.$id};$streep++){
            echo '<dir>';
        }

        echo '- '.$id;
        for($streep=0;$streep<${'koppelid'.$id};$streep++){
            echo '</dir>';
        }
    }

    $id++;
}

?>


als output krijg ik
1
---- 2
3
4
5
------ 6
----------- 7
---------------- 8
9
10
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
 
Onbekend Onbekend

Onbekend Onbekend

06/03/2009 07:40:00
Quote Anchor link
Ik snap het wel wat jij nou bedoelt, maar heb je überhaubt mijn post gelezen? Ik wil iets heel anders dan dat jij nu aan het doen bent.
 
Jason de Ridder

Jason de Ridder

06/03/2009 09:18:00
Quote Anchor link
Tommy, je mag ook best wat duidelijker zijn.

Je hebt drie tabellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
-- MENU --   -- ITEMS --  -- MENU_ITEMS --
  id                id                menu_id
  name          item             item_id
  childof        
  left
  right

Met de volgende waarden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
-- MENU --  -- ITEMS --           -- MENU_ITEMS --
 1 home        1 nieuwsitem1      2 - 1
 2 nieuws      2 nieuwsitem2      2 - 2
 3 contact      3 plattegrond       3 - 3


Wat je uiteindelijke wil is een associatieve array in de trant van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
[menu] =>
    ['home'] => 'home'
    ['nieuws'] =>
        [0] => 'nieuwsitem1'
        [1] => 'nieuwsitem2'
    ['contact'] =>
        [0] => 'plattegrond'


Moet ff weg, als ik zo tijd heb maak ik het wel ff af.

[9:39 uur]
Ik bedacht in één keer dat je ook gewoon alleen menu kan doen en deze iets van een type mee kan geven. (type menuitem, type content)
Er is een 'mooie' PEAR class, deze gebruikt het sorteer principe - ben ik even kwijt -. Komt erop neer: elk item krijgt een nummer links en een nummer rechts. Zo kan alles berekend worden, voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
   1 home 16
   2 nieuws 15
       3 nieuwsitem1 14
       4 nieuwsitem2 13
            5 subnieuws 12
       6 nieuwsitem3 11
   7 contact 10
       8 plattegrond 9


[edit]
Sorting heet: Modified Preorder Tree Traversal: http://www.sitepoint.com/article/hierarchical-data-database/2/
[/edit]
Gewijzigd op 01/01/1970 01:00:00 door Jason de Ridder
 
Arian Stolwijk

Arian Stolwijk

06/03/2009 11:37:00
Quote Anchor link
Kijk ook eens naar deze class:

http://www.phphulp.nl/php/scripts/4/1538/

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
<?php

$sql
= "SELECT id,parent_id,title,link FROM menu";

// ... $results wordt gevuld met de resultaten, via mysqli,pdo whatever


$nested = new Nested ();

foreach($results as $menu_item){
    $nested->addChild($menu_item['id'],$menu_item['parent_id'],$menu_item);
}


?>


Vervolgens kun je dan makkelijk via een recursieve functie er bijvoorbeeld een html list (<ul>/<li>) van maken voor je menu.
 
Jurgen assaasas

Jurgen assaasas

06/03/2009 11:46:00
Quote Anchor link
Je kunt toch gewoon:


categorien

id INT
parent INT
name TEXT

Als er geen parent is, is het dus een hoofd categorie.
 
Onbekend Onbekend

Onbekend Onbekend

06/03/2009 15:49:00
Quote Anchor link
Het is de bedoeling dus dat ik zeg maar categorieën heb. Iedere categorie heeft een parent, zoniet, dan is parent 0. Het ophalen van een tree is niet zo moeilijk. Stel, ik heb deze tabellen:
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
items
+----------------------------------+
| itemId                           |
+----------------------------------+
| 1                                |
| 2                                |
| 3                                |
+----------------------------------+

koppelTable
+--------+------------+------------+
| id     | itemId     | categoryId |
+--------+------------+------------+
| 1      | 1          | 3          |
| 2      | 1          | 4          |
| 3      | 2          | 1          |
| 4      | 3          | 1          |
+----------------------------------+

categories
+--------+------------+------------+
| id     | name       | parent     |
+--------+------------+------------+
| 1      | Test 1     | 0          |
| 2      | Test 2     | 1          |
| 3      | Test 3     | 2          |
| 4      | Test 4     | 1          |
| 5      | Test 5     | 4          |
| 6      | Test 6     | 5          |
+----------------------------------+


Dus ik bekijk item 1. Daarbij wil ik dan deze trees weergeven:
Test 1 » Test 2 » Test 3
Test 1 » Test 4

Hoe kan ik dit met zo min mogelijk queries doen? Ik hoop dat het nu een beetje duidelijk id.

Ik gebruik btw MySQL

Edit, is het niet makkelijker om gewoon álle data uit de categorieën tabel te selecteren en uit de koppel tabel en dan een tree bouwen en eventueel server-side cachen?
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Jurgen assaasas

Jurgen assaasas

06/03/2009 17:18:00
Quote Anchor link
Je moet een recursieve functie maken die een loop doorloopt en vervolgens zichzelf aanroept om de childs weer te vinden. Ik had eerst een mooie link waarbij je 2 array's had, een array parents en een array childs.
 
Onbekend Onbekend

Onbekend Onbekend

06/03/2009 17:46:00
Quote Anchor link
Ik ben even gaan knutselen, en kreeg zo'n tree:
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
56
array(2) {
  [0]=>
  array(1) {
    [2]=>
    array(3) {
      ["id"]=>
      string(1) "2"
      ["name"]=>
      string(6) "Genres"
      ["children"]=>
      array(1) {
        [3]=>
        array(3) {
          ["id"]=>
          string(1) "3"
          ["name"]=>
          string(8) "Shooters"
          ["children"]=>
          array(1) {
            [4]=>
            array(3) {
              ["id"]=>
              string(1) "4"
              ["name"]=>
              string(21) "First Person Shooters"
              ["children"]=>
              array(1) {
                [0]=>
                array(3) {
                  ["id"]=>
                  string(1) "6"
                  ["name"]=>
                  string(1) "t"
                  ["parent"]=>
                  string(1) "4"
                }
              }
            }
          }
        }
      }
    }
  }
  [1]=>
  array(1) {
    [0]=>
    array(3) {
      ["id"]=>
      string(1) "2"
      ["name"]=>
      string(6) "Genres"
      ["parent"]=>
      string(1) "0"
    }
  }
}


Met deze code:
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
<?php
                if ($reviewsData[0]['categoriesCacheId'] == "0") {
                    $categoriesModel = new categoriesModel();
                    $categoriesDump = $categoriesModel->getAllCategories(0, true, 'parent');
                    foreach ($categoriesDump as $category) $categoriesData[$category['parentId']] = $category;
                    unset($categoriesDump);
                    
                    $categoriesLinks = $reviewsModel->getAllCategoryLinks($reviewsData[0]['reviewId']);
                    
                    $outputTree = array();
                    foreach ($categoriesLinks as $link) {
                        $outputDump = array();
                        $outputDump[] = array('id' => $categoriesData[$link['category']]['parentId'], 'name' => $categoriesData[$link['category']]['name'], 'parent' => $categoriesData[$link['category']]['parent']);
                        
                        $stop = true;
                        $categoryId = $link['category'];
                        
                        while ($stop) {
                            $categoryId = $categoriesData[$categoryId]['parent'];
                            echo $categoryId;
                            
                            if ($categoryId != 0) {
                                $outputDumpCopy = $outputDump;
                                unset($outputDump);
                                $outputDump = array();
                                $outputDump[$categoryId]['id'] = $categoryId;
                                $outputDump[$categoryId]['name'] = $categoriesData[$categoryId]['name'];
                                $outputDump[$categoryId]['children'] = $outputDumpCopy;
                                unset($outputDumpCopy);
                                
                                echo '<hr /><pre>';
                                var_dump($outputDump);
                                echo '</pre>';
                            }
else {
                                $stop = false;
                            }
                        }

                        
                        $outputTree[] = $outputDump;
                    }

                    $this->view->assign('v', $outputTree);
                }

?>


Nu is mijn bedoeling om dit te cachen in een tabel en als er iets aan een categorie wordt gewijzigd, de cache items waar de gewijzigde category wordt gebruikt, te verwijderen, en als er geen tree in de cache zit, gewoon een nieuwe maken.
 



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.