Category tree

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-End React Developer

As a Front-End React Developer you improve the user-experience of our web applications for your colleagues in Coolblue. How do I become a Front-End React Developer at Coolblue? As a Front-End React Developer you are responsible for developing user interface components and implementing them using React.js concepts and workflows. You work with the UX Designer and get energy from coming up with creative solutions and present these within the team. During the day you gather and welcome feedback on your technical and soft skills. Would you like to become a Front-End React Developer at Coolblue? Read below if the job

Bekijk vacature »

Medior PHP Developer

Functie omschrijving We are looking for a dutch native speaker Wil jij als developer werken bij een interne organisatie en de eigen software verder helpen ontwikkelen? Lees dan snel verder! In deze functie ga je werken als PHP Developer en de interne software en applicaties verder ontwikkelen. In het kort houdt dit in: Je gaat de interne applicaties en software verder optimaliseren. Verder bouw je verschillende API's en koppelingen tussen systemen. Je gaat het CRM-systeem door middel van PHP verder ontwikkelen. Ook ga je collega's ondersteunen bij vragen over de software en applicaties. Bedrijfsprofiel Dit bedrijf is actief in het

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 »

Front-end developer

Functie Jij komt te werken in een team van 5 developers. het product is continue in beweging. Nieuwe en bestaande klanten vragen om vaak nieuwe features. Hierin ben jij zeer belangrijk om te zorgen dat de functionaliteiten goed opgezet worden op technisch vlak. Designs krijg je aangeleverd van een externe partij zodat jij je primair kan focussen op de techniek! Je hebt daarbij alle vrijheid om je eigen creativiteit toe te passen en mee te denken over de gebruikte technieken. Het gezamenlijke doel is een product dat functioneel zeer gebruiksvriendelijk is en het bedrijfsproces van de gebruikers versneld en kwalitatief

Bekijk vacature »

Functioneel applicatiebeheerder - SOP-SYS-SAM

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 Functioneel Applicatiebeheerder voor het financiele domein op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op

Bekijk vacature »

Back End Developer

As a Back End developer at KUBUS you will be developing the (web) application and services of BIMcollab. You have a focus on the back end of our software, for which we mainly work with C# and .NET. We use a full-stack approach, which means that in addition to the back-end, you will also help with other parts of the code. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Junior Software Developer

Functie omschrijving Wij zijn op zoek naar een Junior Software Developer!? Sta jij aan het begin van jouw loopbaan of heb jij misschien al enige ervaring? Vind jij het daarnaast belangrijk om jezelf constant te kunnen ontwikkelen en uitdagen? Lees dan snel verder! Voor een vooraanstaand softwarehuis in Nieuwegein ben ik op zoek naar een Junior Software Developer. De eigenaar van het bedrijf is ervan bewust dat je als junior nog een hoop kan leren, waardoor je de eerste maanden veel begeleiding en diverse trainingen krijgt. Daarna ga je samen met je collega's aan zowel kleine als grote projecten werken.

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

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 »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers 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: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

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 »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een erkende werkgever in de regio van Goes zijn wij op zoek naar een enthousiaste software programmeur met PHP/Symfony ervaring. Een gedreven persoon die het development team komt versterken met het aanpakken van complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel professionele als persoonlijke groei? Lees dan snel verder! Dit ga je doen: Beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Testen en door ontwikkelen van software; Ontwikkelen van nieuwe functionaliteiten;

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

27/04/2024 03:39:39
 
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.