INSERT is used to add new rows in your tables
UPDATE is used to update one or more rows inside your tables
But the biggest of your problems is the lack of security, which will allow bad guys to create you so many issues you will be discouraged in programming for the web. The security basics you need to understand is:
1. Never assume the data sent by users is SAFE.
2. Always filter the data sent by users so you can make sure (at a certain level) they are sending valid data.
3. Only store filtered data inside your database.
What you need at this point is to learn basic security skills with PHP and basic MySQL usage.
There are many ways to do secure code and you will use different methods as you learn. Here's a great course on PHP & MySQL that is still freely available on YouTube, thanks to SitePoint:
http://www.youtube.com/watch?v=SKdof1MECqQ&playnext=1&list=PL37726087193091B2
Now regarding your problem, you need to understand how MySQL works. There are basically three things you can do with data:
1. You can INSERT data inside a table
2. You can UPDATE existing data inside a table
3. You can DELETE data from tables
What you did was only INSERT, which is why you ended up with several rows with the same data. You will have to make use of UPDATE. The syntax is actually simple:
UPDATE table_name SET field_name1='new_value', field_name2='another_value' WHERE this_field='certain_value'
What's important here is to notice there are two things to pay attention to:
1. field names and values
2. WHAT condition to use to update
Reading your code I noticed you didn't use uniquely identifiable data in that table of yours, which will make it hard to update your table contents. This is easily fixed by using an ID per row. Here's a good structure for your table.
CREATE TABLE profiles (
user_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_name VARCHAR(50) NOT NULL,
user_age VARCHAR(3),
user_location VARCHAR(100),
user_facebook VARCHAR(50),
user_experience VARCHAR(50),
user_bands VARCHAR(250),
user_movies VARCHAR(250),
user_books VARCHAR(250),
user_other VARCHAR(250),
PRIMARY KEY (user_id)
) ENGINE = MyISAM;
Now you will have a unique ID for every user inside your profiles table. Updating a user will require an UPDATE query as I mentioned above. There's a trick with using unique IDs in MySQL tables. Adding new rows inside your table doesn't require you to specify the field name at all. So this will work and the user_id value will be automatically generated by the server:
INSERT INTO profiles (user_name, user_age, user_location) VALUES('Cody', '20', 'New York');
The query will work. The thing is when you define a column as AUTO_INCREMENT, MySQL will start with numer 1 as the first row's value then that value will automatically be incremented as you add more rows.
Just to make it clear: as an example, after you executed the INSERT query above you will have this data inside the new table:
1, 'Cody', '20', 'New York'
When you will have to update.. let's say the location... you will have to execute a script like this:
UPDATE profiles SET user_location='Manhattan' WHERE user_id=1
Don't forget to look at that course. They will remove it probably at the end of this month because they moved their courses to a new (private) site. There's a lot of good information on the web but videos are more friendly and it might help you better. Good luck!