javascript - php使用foreach post向mysql添加多条数据

标签 javascript php mysql foreach

你好,我有以下 javascript,它填充了我的字段并且工作正常

<script type="text/javascript">
var count = 0;
$(function(){
$('p#add_field2').click(function(){
    count += 1;
    $('#container').append(
            '<strong>Link #' + count + '</strong><br />'
            + '<input id="field_' + count + '" name="fields[]' + '" type="text" /><input     id="field1_' + count + '" name="idrima' + '" type="text" /><input id="field2_' + count + '" name="code_title' + '" type="text" /><input id="field3_' + count + '" name="name_title' + '" type="text" /><input id="field4_' + count + '" name="vathmos_title_a' + '" type="text" /><input id="field5_' + count + '" name="vathmos_title_d' + '" type="text" /><input id="field6_' + count + '" name="etos' + '" type="text" /><br />');

});
});
</script>

我的问题是,当我使用 foreach 时,我只能添加最后一个字段填充,而不是全部。所以我认为 foreach 不起作用,因为只添加了最后一条记录。我的代码是

if ($_POST['fields']) {

    //get last inserted userid
    $inserted_user_id = $db->last_insert_id();

    //Loop through added fields
    foreach ( $_POST['fields'] as $key=>$value ) {

        //Insert into websites table
        $sql_website = sprintf("INSERT INTO spoudes (idrima,code_title) VALUES ('%s','%s')",
                    mysql_real_escape_string($_POST['idrima']),
                    mysql_real_escape_string($_POST['code_title']));
        $result_website = $db->query($sql_website);
        $inserted_website_id = $db->last_insert_id();


        //Insert into users_websites_link table
        $sql_users_website = sprintf("INSERT INTO spoudes_link (id_fakelos, id_spoudes) VALUES ('%s','%s')",
                               mysql_real_escape_string($inserted_user_id),
                               mysql_real_escape_string($inserted_website_id) );
        $result_users_website = $db->query($sql_users_website);


    }

最佳答案

你应该使用 <input name="idrima[]"><input name="code_title">因为每次添加新字段时,都会覆盖帖子中的该字段。

foreach ( $_POST['fields'] as $key=>$value ) {

    //Insert into websites table
    $sql_website = sprintf("INSERT INTO spoudes (idrima,code_title) VALUES ('%s','%s')",
                mysql_real_escape_string($_POST['idrima'][$key]),
                mysql_real_escape_string($_POST['code_title'][$key]));
    $result_website = $db->query($sql_website);
    $inserted_website_id = $db->last_insert_id();


    //Insert into users_websites_link table
    $sql_users_website = sprintf("INSERT INTO spoudes_link (id_fakelos, id_spoudes) VALUES ('%s','%s')",
                           mysql_real_escape_string($inserted_user_id),
                           mysql_real_escape_string($inserted_website_id) );
    $result_users_website = $db->query($sql_users_website);


}

关于javascript - php使用foreach post向mysql添加多条数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27216676/

相关文章:

javascript - 网页菜单悬停效果带对象跟随

javascript - 将此信息存储在数组或数据库中更好吗?

php - 使用 PHP DOM 将 PostgreSQL 查询结果转换为 XML

Android mysql-connector-java 库

Javascript: map 函数奇怪的行为

javascript - 如何通过表单外的按钮提交表单?

php - 如何正确发送推送通知

php - 为什么我在这里没有取回任何图像?

php - 在选择标签中选择的SET

php - CodeIgniter 等效于 send_long_data() 以避免超过 mysql 的最大数据包大小