Ik heb voor een storingswebapplicatie een bepaald stuk code wat records ophaalt uit een SQL2000 database om een rapport te genereren.
De code ziet er als volgt uit :
Zoals je ziet geef ik telkens in het WHERE statement op in welke categorie ie moet kijken.
Nu staat er in de file voor elke categorie dit stuk code. Het probleem hiermee is dat wanneer er ooit eens een nieuwe categorie wordt aangemaakt, dit niet in deze file meeveranderd.
Nu ben ik aan het denken hoe ik het beste dus bovenstaande code in een for() of foreach() statement kan krijgen om zo met minimale code alle categorieen te doorlopen.
Ik heb al gekeken naar foreach() maar dat gaat zover ik snap over arrays.
De code ziet er als volgt uit :
code:
1
2
3
4
5
6
7
8
9
10
11
12
| $pharos = db_query(" SELECT p.id, p.name, p.description, p.on_special, p.orig_datum,p.inige,p.iniaf, p.o_timestamp, p.af_timestamp, c.name AS category FROM products p, products_categories pc, categories c WHERE (c.name = 'PHAROS' OR c.name = 'PHAROS-workstation') AND p.id = pc.product_id AND c.id = pc.category_id AND month(o_timestamp) = $maand AND year(o_timestamp) = $jaar ORDER BY p.id "); |
Zoals je ziet geef ik telkens in het WHERE statement op in welke categorie ie moet kijken.
Nu staat er in de file voor elke categorie dit stuk code. Het probleem hiermee is dat wanneer er ooit eens een nieuwe categorie wordt aangemaakt, dit niet in deze file meeveranderd.
Nu ben ik aan het denken hoe ik het beste dus bovenstaande code in een for() of foreach() statement kan krijgen om zo met minimale code alle categorieen te doorlopen.
Ik heb al gekeken naar foreach() maar dat gaat zover ik snap over arrays.
[ Voor 3% gewijzigd door B2 op 24-08-2003 22:37 ]