You can use row numbers in your field names to associate the
columns with a particular record. For example, let's say you want 5
rows to enter last names and first names:
<CFSET maxrow = 5>
<CFLOOP INDEX="rownum" FROM="1"
TO="#maxrow#"><CFOUTPUT>
Last name: <INPUT TYPE="text" NAME="lname#rownum#"
SIZE="25">
First name: <INPUT TYPE="text" NAME="fname#rownum#"
SIZE="15"><BR>
</CFOUTPUT></CFLOOP>
This will give you a series of fields such as lname1, fname1,
lname2, fname2, etc.
In your form, you can also include a hidden field to indicate
the number of rows.
When you process the form, you loop again to insert each row:
<CFLOOP INDEX="onerow" FROM="1" TO="#Form.numrows#">
<CFQUERY NAME="addRec" DATASOURCE="mydsn">
INSERT INTO mytable (lastname, firstname)
VALUES ('#Form["lname" & onerow]#)', '#Form["fname" &
onerow]#')
</CFQUERY>
</CFLOOP>