如何使用php代码在数据库中插入动态表单字段的值

如何使用php代码在数据库中插入动态表单字段的值,php,mysql,forms,Php,Mysql,Forms,我在尝试使用动态表单字段将数据库值存储在数据库中各自的行中时遇到问题。我在这里提供了我的代码和输出的屏幕截图 下面提供了添加到数据库中的源代码。请帮我解决这个问题。谢谢更强大: 如果每次都有相同的字段和动态行: <!--ADD WORK EXPERIENCE TO DATABASE --> <?php require'../admin/php/db_connection.php'; if(isset($_POST['update_profile'])

我在尝试使用动态表单字段将数据库值存储在数据库中各自的行中时遇到问题。我在这里提供了我的代码和输出的屏幕截图

下面提供了添加到数据库中的源代码。请帮我解决这个问题。谢谢更强大:

如果每次都有相同的字段和动态行:

<!--ADD WORK EXPERIENCE TO DATABASE -->
  <?php
    require'../admin/php/db_connection.php';
    if(isset($_POST['update_profile']))
    {
        if (isset($_POST['employer'])) {
            for ($i = 0, $nCount = count($_POST['employer']); $i < $nCount; $i++) {
                $employer = mysql_real_escape_string($_POST['employer'][$i]);
                $job_position = mysql_real_escape_string($_POST['job_position'][$i]);
                $query = mysql_query('INSERT INTO tbl_work_exp (´employer´, ´job_position´) VALUES (´' . $employer . '´, ´' . $job_position . '´)');
            }
        }
    }
  ?>
<!--ADD WORK EXPERIENCE TO DATABASE -->

您还必须在那里添加其他字段

逻辑上的问题是,对每个字段都进行一次插入,但一行只需要一次插入


请不要在php中使用mysql库,最好使用

您的问题是您分别传递每个值。我强烈建议更改HTML标记以对每个值进行分组,但这不是本文的目标。对于您当前的问题,这是一个快速的解决方案,可以帮助您度过难关。从当前代码中提取:

<?php
if (isset($_POST['update_profile'])) {
    $profileFields = array('employer', 'job_position');
    $profiles = array();

    foreach ($profileFields as $field)
    {
        if (isset($_POST[$field])) {
            foreach ($_POST[$field] as $key => $value) {
                if (!isset($profiles[$key])) {
                    $profiles[$key] = array();
                }
                $profiles[$key][$field] = mysql_real_escape_string($value);
            }
        }
    }

    foreach ($profiles as $profile) {
        $tableCols = implode(",", array_keys($profile));
        $profileValues = implode("','", array_values($profile));
        $insertQuery = "INSERT INTO tbl_work_exp ({$tableCols}) VALUES ('{$profileValues}')";
    }
}
?>

感谢您提供此代码片段,它可能会提供一些即时帮助。通过说明为什么这是一个很好的解决问题的方法,正确地解释它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请在回答中添加解释,并说明适用的限制和假设。
<?php
if (isset($_POST['update_profile'])) {
    $profileFields = array('employer', 'job_position');
    $profiles = array();

    foreach ($profileFields as $field)
    {
        if (isset($_POST[$field])) {
            foreach ($_POST[$field] as $key => $value) {
                if (!isset($profiles[$key])) {
                    $profiles[$key] = array();
                }
                $profiles[$key][$field] = mysql_real_escape_string($value);
            }
        }
    }

    foreach ($profiles as $profile) {
        $tableCols = implode(",", array_keys($profile));
        $profileValues = implode("','", array_values($profile));
        $insertQuery = "INSERT INTO tbl_work_exp ({$tableCols}) VALUES ('{$profileValues}')";
    }
}
?>
<?php
if(isset($_POST['Button_name'])){
for($i=0; $i<count($_POST['employer_name']); $i++){
$query="INSERT INTO table_name(employer_name,employer_age) VALUES ('".$_POST['employer_name']."','".$_POST['employer_age']."')";
$result=mysql_query($query);}}
<?php 
$count_post_value = $_POST['first_name'] //this is value of text box //


for($i=0; $i<$count_post_value; $i++) 
{ 
if(trim($_POST["first_name"][$i] && $_POST["last_name"] && $_POST["remarks"]!= '')) 
{   

$sql = mysql_query("INSERT INTO Table_name(first_name,last_name) VALUES('".$_POST["first_name"][$i]."','".$_POST["last_name"][$i]."')"); 
if($sql) 
{
echo "<script>alert('Inserted Successfully');</script>";
}


else 
{
echo "<script>alert('ERROR');</script>";
}

}

}  

?>