/* Adding Experiences */
$("#addExperience").click(function () {
if(experiencectr>5){
alert("WOW! But 5 experiences are enough.");
return false;
}
var newTextBoxDiv = $(document.createElement('div'))
.attr("id", 'ExperienceDiv' + experiencectr);
newTextBoxDiv.html('<label>Experience No. '+ experiencectr + ' : </label>' +
'<input type="text" name="experience[]" id="experience' + experiencectr + '" > ' +
'<input type="text" id="year' + experiencectr +
'" size="5" name="years[]"><label>years</label>');
newTextBoxDiv.appendTo("#ExperienceBoxesGroup");
experiencectr++;
});
In the code above, It adds two fields: experience and years textfields
foreach ($_POST['experience'] as $experience) {
// save $experience to database
$sql_experience = "INSERT INTO experiences(number,experience)
values ('$number','$experience')";
if($result3 = mysql_query($sql_experience ,$db))
{
foreach ($_POST['years'] as $years) {
$sql_years = "UPDATE experiences SET years=$years WHERE experience=$experience";
if($result = mysql_query($sql_years ,$db))
{ }
else
{ echo "ERROR: ".mysql_error(); }
}
}
else
{ echo "ERROR: ".mysql_error(); }
}
In this code above, it saves into database but the field columns have the SAME value in all rows. Can you guys please help me?
I need an answer 😀
You have to get the indexes to access the values in the other array:
This will work, but you probably shouldn’t do it this way because it leaves you open for SQL injections. A better way to do this would be by sanitizing your inputs (eg:
mysql_reaL_escape_stringor its mysqli equivalent)The best way to go would be using prepared statements: