Nieuwe velden
Quote:
'Ik denk dat je het jezelf gemakkelijker maakt om dit soort dingen in verschillende deelproblemen op te delen want je neemt teveel hooi op je vork.'
Dus laat hem eerst eens zien hoe je een enkele bundel data kan verwerken. En dan dit gestructureerd uitbouwen naar een foreach(), om de rest door te lopen. Anders komt het meer uit op een hap-klaar voorbeeld die je bij een afhaal-chinees haalt, en daar leert niemand wat van. ;-)
Gewijzigd op 28/07/2016 13:21:43 door - Ariën -
- Ariën - op 28/07/2016 13:20:55:
Dat klopt Thomas. Ik gaf zelf al aan dat ik een gestripte versie van mijn code had geplaatst. Omdat jij dit aan de topicstarter aanbeveelde:
Dus laat hem eerst eens zien hoe je een enkele bundel data kan verwerken. En dan dit gestructureerd uitbouwen naar een foreach(), om de rest door te lopen. Anders komt het meer uit op een hap-klaar voorbeeld die je bij een afhaal-chinees haalt, en daar leert niemand wat van. ;-)
Quote:
'Ik denk dat je het jezelf gemakkelijker maakt om dit soort dingen in verschillende deelproblemen op te delen want je neemt teveel hooi op je vork.'
Dus laat hem eerst eens zien hoe je een enkele bundel data kan verwerken. En dan dit gestructureerd uitbouwen naar een foreach(), om de rest door te lopen. Anders komt het meer uit op een hap-klaar voorbeeld die je bij een afhaal-chinees haalt, en daar leert niemand wat van. ;-)
Hoi Arien,
Bedankt, een enkele bundel was mij al in eerst instantie gelukt om te verwerken naar de db, maar nu de rest.
daar kan ik geen begin van maken.
Dit plaats je op de plek waar je afhandeling van je formulier reeds heeft plaatsgevonden.
Gewijzigd op 28/07/2016 14:25:09 door - Ariën -
Thomas van den Heuvel op 28/07/2016 13:17:48:
@Ariën het hele idee was juist dat je meerdere records in 1x in kon voeren :). Je zult dus op zijn minst met een foreach-loop door je POST data heen moeten.
Daarnaast is het verstandig om je invoer te filteren, je wilt dat datums goed geformatteerde datums zijn, dat (bij voorkeur) de betaalmethode een id(entifier) is van een betaalmethode-tabel en dat een bedrag ook echt een numeriek bedrag is. Dit alles om er zorg voor te dragen dat de informatie die de database in gaat ook echt (in ieder geval qua formattering) klopt.
Oh en als je hier dan toch een foreach van maakt wil je waarschijnlijk ook dat al deze records worden ingevoerd, of geen van alle. Misschien is dan gebruikmaking van een transactie verstandig. Wat tot gevolg heeft dat de engine van deze tabel(len) InnoDB moet zijn.
Daarnaast wil je dan waarschijnlijk ook terugkoppeling over wat er fout is indien er iets niet klopt en wil je tevens niet alles opnieuw invullen maar het formulier terugkrijgen met alle zojuist ingevulde informatie, waarbij de velden met fouten voorzien zijn van een aantekening. Anders wordt het invoeren van omzet nogal een beproeving.
Oftewel: het invoeren moet makkelijk zijn, geen extra werk kosten en de data die de database in gaat moet van het juiste format zijn.
@Douwe hoe zijn deze bedragen opgebouwd? Met een komma als decimaal scheidingsteken, of een punt? Of vul je alles in in centen? Indien je bedragen invoert met een komma dan kan PHP/MySQL hier niet (goed) mee rekenen. Daarnaast, hoe luidt de tabeldefinitie van omzet (op te vragen met SHOW CREATE TABLE omzet)?
Daarnaast is het verstandig om je invoer te filteren, je wilt dat datums goed geformatteerde datums zijn, dat (bij voorkeur) de betaalmethode een id(entifier) is van een betaalmethode-tabel en dat een bedrag ook echt een numeriek bedrag is. Dit alles om er zorg voor te dragen dat de informatie die de database in gaat ook echt (in ieder geval qua formattering) klopt.
Oh en als je hier dan toch een foreach van maakt wil je waarschijnlijk ook dat al deze records worden ingevoerd, of geen van alle. Misschien is dan gebruikmaking van een transactie verstandig. Wat tot gevolg heeft dat de engine van deze tabel(len) InnoDB moet zijn.
Daarnaast wil je dan waarschijnlijk ook terugkoppeling over wat er fout is indien er iets niet klopt en wil je tevens niet alles opnieuw invullen maar het formulier terugkrijgen met alle zojuist ingevulde informatie, waarbij de velden met fouten voorzien zijn van een aantekening. Anders wordt het invoeren van omzet nogal een beproeving.
Oftewel: het invoeren moet makkelijk zijn, geen extra werk kosten en de data die de database in gaat moet van het juiste format zijn.
@Douwe hoe zijn deze bedragen opgebouwd? Met een komma als decimaal scheidingsteken, of een punt? Of vul je alles in in centen? Indien je bedragen invoert met een komma dan kan PHP/MySQL hier niet (goed) mee rekenen. Daarnaast, hoe luidt de tabeldefinitie van omzet (op te vragen met SHOW CREATE TABLE omzet)?
Hoi Thomas,
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
CREATE TABLE `omzet` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`datum` date NOT NULL,
`betaalmethode` text NOT NULL,
`bedrag` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=91 DEFAULT CHARSET=latin1
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`datum` date NOT NULL,
`betaalmethode` text NOT NULL,
`bedrag` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=91 DEFAULT CHARSET=latin1
Zo worden ze opgeslagen en ingevoerd ook: