I have a dynamic form that users can add extra fields too. The group of fields are added and the name stays the same but gets a incremental number attached to it. So for my insert php file I just check to see if the next value is set and if so it inserts all the required info. But this code doesn't look very 'streamlined' to me. Is there a better way? mysql_select_db("inventory", $con); if( !isset($_POST['productid2']) ) { $sql="INSERT INTO shipped (id, type, client, product, color, quantity) VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]')"; } if( isset($_POST['productid2']) ) { $sql="INSERT INTO shipped (id, type, client, product, color, quantity) VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'), ('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]')"; } if( isset($_POST['productid3']) ) { $sql="INSERT INTO shipped (id, type, client, product, color, quantity) VALUES ('$_POST[productid]','$_POST[type]','$_POST[client]','$_POST[product]','$_POST[color]','$_POST[quantity]'), ('$_POST[productid2]','$_POST[type2]','$_POST[client2]','$_POST[product2]','$_POST[color2]','$_POST[quantity2]'), ('$_POST[productid3]','$_POST[type3]','$_POST[client3]','$_POST[product3]','$_POST[color3]','$_POST[quantity3]')"; } // And I have like this 5 more times, the code gets longer each time!