Nieuwe velden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

28/07/2016 13:20:55
Quote Anchor link
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:

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 -
 
PHP hulp

PHP hulp

15/11/2024 07:07:56
 
Douwe Westra

Douwe Westra

28/07/2016 14:03:17
Quote Anchor link
- 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:

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.
 
- Ariën  -
Beheerder

- Ariën -

28/07/2016 14:14:48
Quote Anchor link
Zorg eerst dat je even tijdelijk een overzicht biedt van je $_POST-array met al je data.
Dit plaats je op de plek waar je afhandeling van je formulier reeds heeft plaatsgevonden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo"<pre>".print_r($_POST,true)."</pre>"; ?>
Gewijzigd op 28/07/2016 14:25:09 door - Ariën -
 
Douwe Westra

Douwe Westra

29/07/2016 10:51:01
Quote Anchor link
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)?


Hoi Thomas,

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


Zo worden ze opgeslagen en ingevoerd ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
datum betaalmethode bedrag

2015-10-16 Contant 1452.22
 

Pagina: « vorige 1 2



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.