[php+mysql] Probleem met nesting en het retourneren van data

Pagina: 1
Acties:

  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
ik zit met een probleempje ik zal het als volgt uitleggen:

ben een calculatie applicatie (webbased d0h) aan het maken. Hierbij worden producten uit een producten database gehaald worden aantallen en winstpercentages aan gehangen en vervolgens (als de calculatie gesaved wordt, worden deze producten in een aparte tabel gezet met daaraan gekoppeld een calculatienummer (offerte nummer).

Nu ben ik een optie aan het maken om VOLLEDIGE CALCULATIES aan een los product te hangen.
dat product krijgt dan een 'flag' mee met het ID van de calculatie.

Als ik dan EEN calculatie ophaald en het laat berekenen en d'r zit toevallig een geneste calculatie in, berekent hij ook die geneste calculatie!

MAAR.. nu komt het probleem. Ik wil dus het ook zo maken (komt wel voor) dat er een geneste calculatie binnen een geneste calculatie zit!. En dat kan als de database uitgegroeid is, nog wel gekker worden ook, dus het is niet zo dat ik ff 2 loopjes kan doen.

Heb al es een stackbased parsertje gemaakt, alleen heb eventjes geen id hoe ik dit kan oplossen.
Hij moet als het ware door alle VELDEN wandelen.

CalculatieDATA -> checken op geneste zooi
Geneste CALCULATIE -> checken op geneste zooi
Nog een geneste calculatie -> checken op geneste zooi

Heeft iemand een idee, hoe ik dit op kan lossen??

A smooth sea never made a skilled sailor


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 14-04 16:14
Een join maken om in het geneste record terug te geven. Met 4 joins kun je in ieder geval tot 4 niveaus diep.

SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT
  c.calculatie, nest1.calculatie, nest2.calculatie, nest3.calculatie, nest4.calculatie
FROM
  calculaties AS c
LEFT JOIN
  calculaties AS nest1 ON c.ID = nest1.parentID
LEFT JOIN
  calculaties AS nest2 ON nest1.ID = nest2.parentID
LEFT JOIN
  calculaties AS nest3 ON nest2.ID = nest3.parentID
LEFT JOIN
  calculaties AS nest4 ON nest3.ID = nest4.parentID
WHERE
  c.ID = 1


Zo doe ik t meestal, weet niet of het ook netter kan. Indien een item maar 1 genest item heeft zijn nest2ID, nest3ID en nest4ID NULL

[ Voor 78% gewijzigd door frickY op 19-01-2006 08:42 ]


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
allright tenx , :) maar 'oneindige' nesting is geen oplossing voor ?

A smooth sea never made a skilled sailor


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22:58

Janoz

Moderator Devschuur®

!litemod

Wat jij zoekt heet recursie.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
das nog beter :) ik wist niet dat je een functie zichzelf ook kunt laten aanroepen, maar das wel weer genoeg info! tenx

A smooth sea never made a skilled sailor


  • wboard
  • Registratie: Juli 2002
  • Laatst online: 04-04-2022

wboard

-=<wboard>=-

Topicstarter
..niet meer nodig..

[ Voor 255% gewijzigd door wboard op 29-01-2006 15:15 ]

A smooth sea never made a skilled sailor

Pagina: 1