abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas donderdag 6 oktober 2005 @ 08:35:30 #201
1972 Swetsenegger
Egocentrische Narcist
pi_31222185
quote:
Op woensdag 5 oktober 2005 21:05 schreef Swetsenegger het volgende:
Hmz, mysql documentation heeft een single querie solution voor de Adjacency List Model (recursieve):
http://dev.mysql.com/tech(...)erarchical-data.html

-edit- nee 1 query per level 0 parent.
Ok,

mijn nested hierarchische model draait.
Ik kan hoofditems aanmaken, en subitems in de hoofditems, en subitems in de subitems, etc. (Dit is nog tricky, subitems aanmaken scheelt namelijk 1 punt verschuiven. Doe je dat niet, maak je alleen maar hoofditems aan, waarbij alleen de volgorde veranderd )

Ik heb twee invoervelden:
'hoofditem' welke feitelijk een nieuw tree aanmaakt.
'subitem' welke een subitem in een hoofditem aanmaakt OF in een subitem, afhankelijk van welk item je selecteert.

Eigenlijk moet ik dus voor elk level een aparte dropdown krijgen, waardoor je het overzicht hou. Maar ik weet even nog niet hoe ik hier de verschillende levels uit moet vissen. Het diepste level is simpel, want daar is rgt gelijk aan lft+1.

1
2
3
4
5
6
7
8
9
10
menu_id |   name   | lft | rgt |
--------+----------+-----+-----+
1       | Horloges |  1  | 14  |
2       | Sieraden |  15 | 16  |
3       | Seiko    |  8  | 13  | 
4       | Citizen  |  2  | 7   |
5       | Kinetic  |  11 | 12  |
6       | Quartz   |  9  | 10  |
7       | Double   |  5  | 6   |
8       | Staal    |  3  | 4   | 

(horloges en sieraden zijn dus trees, waarbij sieraden nog geen subitems heeft)

En dan heb ik nog niet eens nagedacht over items verwijderen
quote:
Op woensdag 5 oktober 2005 22:55 schreef Light het volgende:

[..]

Met nog een paar aanpassingen, en eens goed tellen, ben ik op 59 tekens gekomen
Stoer! PLaatsen op phpfreakz.
Ben benieuwd of jouw methode hetzelfde is als die van SUperRembo
pi_31235492
quote:
Op donderdag 6 oktober 2005 08:35 schreef Swetsenegger het volgende:

Stoer! PLaatsen op phpfreakz.
Ben benieuwd of jouw methode hetzelfde is als die van SUperRembo
Daar had ik 'm gisteravond al geplaatst En de oplossing van SuperRembo heb ik niet gezien, dus ik kan ook niet vergelijken. Maar ik denk toch dat die van mij iets anders is, ik gebruik geen ringel-s ( / beta)
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 13:17:42 #203
1972 Swetsenegger
Egocentrische Narcist
pi_31332250
quote:
Op donderdag 6 oktober 2005 08:35 schreef Swetsenegger het volgende:

[..]

Ok,

mijn nested hierarchische model draait.
Weekendje weg geweest, maar op vrijdag had ik er een soort van klikbaar management systeem om heen gebouwd welke het mogelijk maakt menu items toe te voegen (verwijderen komt later nog) ( http://test.xploise.nl/nested_test.php )

Om dit goed te visualiseren is inspringen natuurlijk perfect. De volgende query vond ik op mysql.org, en geeft perfect de diepte weer van elk item. Hij heeft maar 1 probleem... wanneer 1 naam meer keren voorkomt in je hierarchische model klopt de output niet meer

1
2
3
4
5
6
SELECT node.name, (
       COUNT( parent.name ) -1) AS depth
       FROM nested_menu AS node, nested_menu AS parent
       WHERE node.lft BETWEEN parent.lft AND parent.rgt
       GROUP BY node.name
       ORDER BY node.lft


dat komt doordat de query op naam zoekt uiteraard. Iemand enig idee hoe ik deze kan verbouwen zodat dubbele namen geen problemen geven?
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 13:47:09 #204
1972 Swetsenegger
Egocentrische Narcist
pi_31332871
quote:
Op maandag 10 oktober 2005 13:17 schreef Swetsenegger het volgende:
Iemand enig idee hoe ik deze kan verbouwen zodat dubbele namen geen problemen geven?
Ik was weer veel te moeilijk aan het denken

1
2
3
4
5
6
SELECT node.menu_id, node.name, (
       COUNT( parent.name ) -1) AS depth
       FROM nested_menu AS node, nested_menu AS parent
       WHERE node.lft BETWEEN parent.lft AND parent.rgt
       GROUP BY node.menu_id
       ORDER BY node.lft

Opgelost
pi_31337596
Mensen ik zit met het volgende, ik wil uit een input checken of dit een mogelijke videogrote is, echter weet ik niet welke modusen mogelijk zijn.

bv 1024x800 etc?

ik weet dat ik de texten kan splitten op x ennuh dan de text daarvoor en daarna kan checken op nummeric maaruh dan wil ik graag nog alle modus weten. Is er een lijst en of snelle check of deze modus wel correct is?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31338017
en nog iets vaags.

Ik heb een functie gemaakt.

1
2
3
4
5
6
7
class stat
{
    function statError($msg, $code, $lijn)
    {
        die ("Error gevonden op lijn: " . $lijn . " in de volgende code: " . $code . " en gaf de volgende reden: " . $msg);
    }
    // meer code hieronder mja ga dat niet allemaal posten hoor hehehehehe


en die functie roep ik normaal aan met

1mysql_query($sql) or statError(mysql_error(), $sql, _LINE_);


maaruh daarop krijg ik geen error, maar wel als ik dit doe

1
2
3
4
5
6
7
8
if (mysql_query($sql))
{
    // return true;
}
else
{
     statError(mysql_error(), $sql, _LINE_);
}


Why? ik vat um niet, alle uppercase / lowercase klopt
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 18:31:31 #207
1972 Swetsenegger
Egocentrische Narcist
pi_31338695
quote:
Op maandag 10 oktober 2005 17:37 schreef Chandler het volgende:
Mensen ik zit met het volgende, ik wil uit een input checken of dit een mogelijke videogrote is, echter weet ik niet welke modusen mogelijk zijn.

bv 1024x800 etc?

ik weet dat ik de texten kan splitten op x ennuh dan de text daarvoor en daarna kan checken op nummeric maaruh dan wil ik graag nog alle modus weten. Is er een lijst en of snelle check of deze modus wel correct is?
Je bedoelt zoiets als
640*480
800*600
1024*768
1280*960
1280*1024 (dit is een afwijkende en typische TFT resolutie)
1600*1200
pi_31339116
1   mysql_query($sql) or die (statError(mysql_error(), $sql, _LINE_));

or die() dus ipv or
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 19:40:39 #209
1972 Swetsenegger
Egocentrische Narcist
pi_31340195
http://test.xploise.nl/nested_test.php
Is deze 'visuele methode' om een menu te maken te begrijpen door een leek? Of zijn pulldowns handiger?

Het probleem is een beetje welk huidig item je moet selecteren om een nieuw item ervoor of erachter te krijgen. Vandaar dat ik dit heb opgezet.
pi_31340332
@Swets: Is er zo'n lijst? want deze heb ik helaas niet kunnen vinden

@ikke_ook: volgens mij heb ik in het verleden het ook zonder DIE gedaan en dat moet natuurlijk ook werken volgens mij, maar dat was het probleem niet echt, wel dat bij die if (etc) het fout ging enzo.. dat ie zegt dat de functie niet bestaat
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31340431
@Swets: je manier is idd niet zo simpel te begrijpen, gebruik gewoon + en - etc? om een subitem toe te voegen aan een menu

dus iets van (stel je hebt)


1
2
3
4
5
(+/-)
hoofd menu (+/-)
   test 1 (+/-)
   test 2 (+/-)
sub menu (+/-)

etc.. en dan die plus en of min gebruiken om menu's toe tevoegen en of te verwijderen ofzo?!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 19:56:33 #212
1972 Swetsenegger
Egocentrische Narcist
pi_31340459
quote:
Op maandag 10 oktober 2005 19:49 schreef Chandler het volgende:
@Swets: Is er zo'n lijst? want deze heb ik helaas niet kunnen vinden
Mijn lijstje is aardig compleet hoor
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 20:00:49 #213
1972 Swetsenegger
Egocentrische Narcist
pi_31340583
quote:
Op maandag 10 oktober 2005 19:55 schreef Chandler het volgende:
@Swets: je manier is idd niet zo simpel te begrijpen, gebruik gewoon + en - etc? om een subitem toe te voegen aan een menu

dus iets van (stel je hebt)
[ code verwijderd ]

etc.. en dan die plus en of min gebruiken om menu's toe tevoegen en of te verwijderen ofzo?!
Hmz, dat is ook wel een idee. Alleen zit je dan met een item BOVEN een ander item toevoegen of ONDER een ander item toevoegen.
pi_31340801
wat je kan doen is gewoon voor de 0 tree, een extra button plaatsen en voor de rest gewoon een + en of - (of wat dan ook)..

Ik had vroeger een example die het volgende had

1
2
3
4
5
6
7
8
tree
    treesub1 (add/remove/list)
    treesub2 (add/remove/list)
        treesubsub1 (add/remove/list)
        treesubsub2 (add/remove/list)
 etc 
etc
etc


en dat werkte best, echter zag dat er weer niet uit
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31340825
@Swets; dat lijstje is idd aardig compleet maar er zijn volgens mij nog veel meer modes (1900??) etc?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 20:16:03 #216
1972 Swetsenegger
Egocentrische Narcist
pi_31340929
quote:
Op maandag 10 oktober 2005 20:10 schreef Chandler het volgende:
wat je kan doen is gewoon voor de 0 tree, een extra button plaatsen en voor de rest gewoon een + en of - (of wat dan ook)..

Ik had vroeger een example die het volgende had
[ code verwijderd ]

en dat werkte best, echter zag dat er weer niet uit
1
2
3
4
5
tree
    treesub1 (add/remove/list)
    treesub2 (add/remove/list)
        treesubsub1 (add/remove/list)
        treesubsub2 (add/remove/list)

Als ik achter treesub1 op add klikt. Waar plaatst hij de nieuwe sub dan? boven treesub1 of eronder? Die keuze bestaat sowieso in deze opzet niet meer.

En ik weet al precies hoe het gaat. Systeem draait een paar maanden, klant wil een extra menu optie. De menuoptie mag natuurlijk niet zomaar onderaan komen, nee die moet bijvoorbeeld precies tussen item 3 en 4 komen.

Dus ik wil er ten alle tijden voor zorgen dat het zo flexibel mogelijk is. Maar ik moet toegeven dat het er nu met een aantal menuitems als hogere wiskunde uit gaat zien .

Overigens, met alleen pulldowns WERD het hogere wiskunde. Je hebt namelijk dan sowieso al de keuze 'nested' of 'ernaast' en dan is nog afhankeljik van welke huidig item je selecteert waar het nieuwe item in de lijst verschijnt.
pi_31340994
Dit is wat ik op m'n videokaart in kan stellen:

640x480
720x480
720x576
800x600
848x480
960x600
1024x768
1152x864
1280x720
1280x768
1280x800
1280x960
1280x1024

En dan heb je nog laptops, pda's en tv's met afwijkende resoluties. Extreem klein en extreem groot zou je er uit kunnen filteren, maar verder is er denk ik geen sluitende lijst maken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 20:21:55 #218
1972 Swetsenegger
Egocentrische Narcist
pi_31341064
quote:
Op maandag 10 oktober 2005 20:11 schreef Chandler het volgende:
@Swets; dat lijstje is idd aardig compleet maar er zijn volgens mij nog veel meer modes (1900??) etc?
Nou, niet veel mensen zullen op dit moment hoger zitten dan 1600*1200
sowieso is het een heel simpel reken sommetje:

1900/640=2.96
480*2,96=1425

Als er zoiets bestaat als 1900 zal het 1900*1425 zijn
Er zijn nog wel meer resoluties, bv voor breedbeeld laptops. die wijken af van het 1.33:1 principe.

Misschien kan je ergens op een uitgebreide statistieken pagina een mooi lijstje vinden
pi_31341116
als je op de add van treesub1 klikt maakt ie een subitem aan met het id van treesub1 en het zelfde geld voor als je klikt op treesub2 dan krijg je dus weer een treesubsub3 met het id van treesub2 als parent_id. ow en met een 'sort' in je tabel kun je altijd zorgen dat iemand op de goede volgorde staan (ook weer met (+ / -) om naar boven cq beneden te verplaatsen. dus ieder ID die je aanmaakt geef je de count van het aantal id's die in de tree zitten).

vb

1
2
3
4
5
6
7
8
ID:PARENT_ID (sort)

0:0 (0)  = tree
1:1 (1)  =    subtree1
2:1 (2)  =    subtree2
3:2 (1)  =       subsubtree1
4:2 (2)  =       subsubtree2
5:1 (3)  =    subtree3


dus stel je zet een item tussen
1
2
3:2 (1)  =       subsubtree1
4:2 (2)  =       subsubtree2


dan wordt dat stukje dus

1
2
3
3:2 (1)  =       subsubtree1
5:2 (2)  =       subsubtree3
4:2 (3)  =       subsubtree2


0:0 (1) staat voor
0 = ID
0 = PARENT_ID
(1) = sorterings positie

The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31341163
@SuperRembo & @Swets; dan ga ik gewoon checken of het nummerieke stukken zijn en is dat het geval dan is het goed.

The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 20:28:05 #221
1972 Swetsenegger
Egocentrische Narcist
pi_31341236
"ow en met een 'sort' in je tabel kun je altijd zorgen dat iemand op de goede volgorde staan (ook weer met (+ / -) om naar boven cq beneden te verplaatsen. dus ieder ID die je aanmaakt geef je de count van het aantal id's die"

Met hierarchische data is het niet zo eenvoudig schuiven helaas.
pi_31341360
hoe bedoel jij hierarchistische data? heb je een voorbeeld?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 10 oktober 2005 @ 20:36:05 #223
1972 Swetsenegger
Egocentrische Narcist
pi_31341485
quote:
Op maandag 10 oktober 2005 20:31 schreef Chandler het volgende:
hoe bedoel jij hierarchistische data? heb je een voorbeeld?
1
2
3
4
5
6
7
8
9
10
menu_id |   name   | lft | rgt |
--------+----------+-----+-----+
1       | Horloges |  1  | 14  |
2       | Sieraden |  15 | 16  |
3       | Seiko    |  8  | 13  | 
4       | Citizen  |  2  | 7   |
5       | Kinetic  |  11 | 12  |
6       | Quartz   |  9  | 10  |
7       | Double   |  5  | 6   |
8       | Staal    |  3  | 4   | 


Zo staat het in de tabel
http://www.sitepoint.com/article/hierarchical-data-database/2
http://dev.mysql.com/tech(...)erarchical-data.html
pi_31341609
lft? en rgt? leg je tabel eens uit?!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31341780
The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')