the reason it only works once is because your code is simply displaying those three boxes everytime the button is clicked. you need to code a way to handle if the button is submitted more than once, otherwise it wil just repeat itself, hence you only see the same 3 every time.
this might be what you are after
this kind of effect can be achieved wtih PHP but its probably easier to achieve with JS/ajax or similar.
you could put the extra fields in to several <divs> with their display:hidden property, then if an add-more is clicked, change it to display:visible
l googled dynamically adding form fields, there's a tonne of stuff available
unless I misunderstand and you just want a way for the user to add another record after they submit the form.. in that case
// process form
// display form
/* on the same page, it will insert the record to DB
and provide the form again on teh same page, allowing you to add another record. */