Category tree

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

C# .NET Software Ontwikkelaar

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 Arnhem 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. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

Low-Code Expert/Developer: Power Platform Speciali

Bedrijfsomschrijving Als Low-Code Expert/Developer bij ons innovatieve bedrijf, neem je een cruciale rol op je in de creatie, ondersteuning en implementatie van diverse oplossingen met behulp van het veelzijdige Power Platform. Dit platform omvat Power Apps, Power BI, Power Automate, Power Virtual Agent en Azure Logic Apps. Het Power Platform biedt je de mogelijkheid om klanten te voorzien van naadloze integraties door op maat gemaakte oplossingen te creëren die compatibel zijn met (bijna) alle bestaande software-infrastructuren. Dankzij het uitgebreide scala aan toepassingen, krijg je de kans om als architect en projectleider van je eigen oplossing te fungeren. Dompel jezelf onder

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 »

Medior/Senior Python developer (Django)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en werken ze met pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Er is een kwaliteitsfocus en dan biedt ruimte om verbeteringen echt door te voeren binnen de gehele

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

Webshop beheerder / Fullstack developer

Functie omschrijving Wij zijn op zoek naar een full stack developer die zich bezig gaat houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Lees dan snel verder! Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator

Bekijk vacature »

Medior PHP developer

Functie Samen met je development team werk je Agile Scrum en met jullie gezamenlijke kennis en ervaring bepalen jullie samen de beste keuze voor techniek en architectuur. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en denkniveau • Je hebt goede kennis en ervaring met PHP • Je bent niet bang voor complexe projecten • Je werkt graag zelfstandig aan applicaties • Je bent altijd nieuwsgierig naar nieuwe

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

WordPress & Azure Developer

Dit ga je doen Zowel front- als back-end development aan de online website omgeving; Het up-to-date houden van alle WordPress-sites; Koppelingen maken tussen applicaties; Meedenken en adviseren over verbeteringen; Development door middel van WordPress, Javascript, HTML en CSS; Werken binnen Scrum/Agile team. Hier ga je werken Voor een grote overheidsinstelling in Den Haag zijn wij opzoek naar een WordPress developer, met kennis en ervaring op het gebied van Azure. De organisatie zit in een grote transitie waarbij de gehele website/online omgeving vernieuwd zal gaan worden. Binnen dit Scrum/Agile team ben je verantwoordelijk voor deze grote migratie/ombouw van de omgeving. De

Bekijk vacature »

.NET Developer

Functie omschrijving Ervaren .NET Developer gezocht! Wij zoeken een ervaren .NET developer die aan de slag gaat voor een softwarebedrijf in de regio Rhenen. In deze rol ben jij zowel zelfstandig als in teamverband verantwoordelijk voor het ontwikkelen en verbeteren van bestaande producten. Daarnaast houdt jij je bezig met de nieuwbouw van websites, webapplicaties en mobiele applicaties die zowel intern als extern gebruikt worden. Je werkt hierbij nauw samen met andere developer, productmanagers en product specialisten om mooie producten te creëren. Bedrijfsprofiel Waar kom je te werken? Je komt te werken voor snelgroeiende softwareleverancier en allround dienstverlener. Klanten van deze

Bekijk vacature »

PHP developer (Symfony, Doctrine)

Functie Als PHP developer wordt er een hoge mate van zelfstandigheid verwacht, maar ook dat je goed opereert in een team waar kennis wordt gedeeld en dingen als codereviews erg veel voorkomen. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden

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 03:58:16
 
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.