将多个相同的命名字段保存到数据库PHP

时间:2013-08-26 16:43:10

标签: php jquery html

保存它的PHP代码。

$cols = $_POST['col'];

$EvenementID = mysql_real_escape_string($_POST['evenementid']);

foreach($cols as $col) {

$Ticketnaam = mysql_real_escape_string($col['ticket']);
$Aantal = mysql_real_escape_string($col['aantal']);
$Prijs = mysql_real_escape_string($col['prijs']);

$sql = "INSERT INTO tbl_Tickets (EvenementID, Ticketnaam, Aantal, Prijs) VALUES('".$EvenementID ."', '{$Ticketnaam}', '{$Aantal}', '{$Prijs}')";


}

HTML CODE

<input type="hidden" name="evenementid" value="<?php echo $evenementid; ?>" />

第1块

<input type="text" name="col[0][ticket]" id="ticket" class="tekst-lang"/>
<input type="text" class="tekst-lang" name="col[0][aantal]" id="aantal"/>
<input type="text" class="tekst-lang" name="col[0][prijs]" id="prijs"/>

第2块

<input type="text" name="col[1][ticket]" id="ticket" class="tekst-lang"/>
<input type="text" class="tekst-lang" name="col[1][aantal]" id="aantal"/>
<input type="text" class="tekst-lang" name="col[1][prijs]" id="prijs"/>

AJAX

var myData = $('#ticket-form').serialize();

                        $.ajax({
                            type: "POST",

                            //URL of the php file that will process the login
                            url: "includes/ticket.php",

                            dataType: 'json',

                            //Pass the data through
                            data: myData,

                            //Handle the response
                            success: function (data) {

                            switch(data.case){

                            case 1: 
                            $(".inlog-feedback").html(data.message).fadeIn('slow');
                            break;

                            case 2:      
                            $(".inlog-feedback").html(data.message).fadeIn('slow');
                            window.location = "index.php"; 
                            break;

                            case 3: 
                            $(".inlog-feedback").html(data.message).fadeIn('slow');
                            break;

                            default:
                            /* If none of the above */

                            }
                    }            
                        })  

                        //Stop the submit button from submitting the form 
                        return false;   
                        }  

我正在尝试将2个块保存到我的数据库中(所以我需要2个记录)。两个块都具有相同的evenementID。问题是数据库中只有一条记录。

2 个答案:

答案 0 :(得分:0)

$cols = $_POST['col'];

$EvenementID = mysql_real_escape_string($_POST['evenementid']);

foreach($cols as $col) {

$Ticketnaam = mysql_real_escape_string($col['ticket']);
$Aantal = mysql_real_escape_string($col['aantal']);
$Prijs = mysql_real_escape_string($col['prijs']);

$sql = "INSERT INTO tbl_Tickets (EvenementID, Ticketnaam, Aantal, Prijs) VALUES('".$EvenementID ."', '{$Ticketnaam}', '{$Aantal}', '{$Prijs}')";

$res = mysql_query($sql);//This will execute count($cols) number of times

}

你需要在循环中移动mysql_query($ sql),否则它只会执行foreach循环的最后一次迭代。

答案 1 :(得分:0)

    if (isset($_POST)){    
$EvenementID = mysql_real_escape_string($_POST['evenementid']);

foreach($_POST as $col) {

$Ticketnaam_1 = mysql_real_escape_string($col[0]['ticket']);
$Aantal_1 = mysql_real_escape_string($col[0]['aantal']);
$Prijs_1 = mysql_real_escape_string($col[0]['prijs']);


$Ticketnaam_2 = mysql_real_escape_string($col[1]['ticket']);
$Aantal_2 = mysql_real_escape_string($col[1]['aantal']);
$Prijs_2 = mysql_real_escape_string($col[1]['prijs']);





$sql = "INSERT INTO tbl_Tickets (EvenementID, Ticketnaam, Aantal, Prijs) VALUES('".$EvenementID ."', '{$Ticketnaam_1}', '{$Aantal_1}', '{$Prijs_1}')";
$sql = "INSERT INTO tbl_Tickets (EvenementID, Ticketnaam, Aantal, Prijs) VALUES('".$EvenementID ."', '{$Ticketnaam_2}', '{$Aantal_2}', '{$Prijs_2}')";


}


}