如何使用php for循环将多个值插入数据库

时间:2013-08-22 11:18:08

标签: php javascript html mysql ajax

我每行都有一个文本框和一个下拉框。

现在我想在文本框中输入一些日期并在下拉列表中选择一些值。

当我点击它时应该保存到数据库中。

我该怎么做?

这是我的代码

php插入代码: 当我点击提交这个PHP代码应该

<?php
mysql_connect("localhost", "tiger", "tiger") or die(mysql_error());
mysql_select_db("theaterdb") or die(mysql_error());
$query = mysql_query("INSERT INTO movie (movie_name,language) VALUES('$_POST[Fname]','$_POST[language]') ") or die(mysql_error());
?>

下拉动态生成

代码:

function create(param) {
    'use strict';

    var i, target = document.getElementById('screens');
    target.innerHTML = '';

    for(i = 0; i < param; i += 1) {
       target.innerHTML +='</br>';
       target.innerHTML +='New Movie '+i+'  ';
       target.innerHTML += '<input type="text" name="Fname">';
       target.innerHTML +='  '+'Language '+'  ';
       target.innerHTML += "<?php 
        try {
            $dbh = new PDO('mysql:dbname=theaterdb;host=localhost','tiger','tiger');
        } catch (PDOException $e) {
            echo 'Connection failed: ' . $e->getMessage();
        }

        $sql = 'SELECT language FROM languages;';

        $sth = $dbh->prepare($sql);
        $sth->execute();

        echo "<select name='language' id='course'>";
        echo "<option>----Select Language----</option>"; 
        while($row = $sth->fetch(PDO::FETCH_ASSOC)) {
            echo "<option value='" . $row['language'] ."'>" . $row['language']. "</option>";
        }
        echo "</select>";
?>";
       target.innerHTML +='</br>';
       target.innerHTML +='</br>';
    }
}
ui看起来像这样...

enter image description here

3 个答案:

答案 0 :(得分:0)

添加名称  对于文本框并选择此类框

  

name =“text_box”+ i和name =“select_box”+ i。 “i” 的

是来自循环计数器的值,例如,如果您有100个新Moview,则每个文本框都会有这样的名称text_box1, text_box2. ..... text_box100.您应该提交记住“New MovieS”的数字,即“i “并在PHP代码中为每个元素循环并保存它们。在第一次迭代中,您将拥有$_POST[Fname1] and $_POST[language1]等等。

答案 1 :(得分:0)

HTML表单中的

:将文本框和下拉元素名称设置为相同的算法ElementName + RowNumber;    插入RowCount的元素:<input type="hidden" name="RowCount" value="3">

PHP中的

:获取值:

for($iRow=0;$iRow less $_POST['RowCount'];$iRow++) {
    mysql_query("INSERT INTO movie (movie_name,language) VALUES('".$_POST['Fname'.$iRow]."','".$_POST['language'.$iRow]."');
}

答案 2 :(得分:0)

在你的js中添加一行,使得输入在target.innerHTML = '<input name="RowCount" value="' + param + '" hidden />'的行中打印,然后在PHP中使用:

for ($i=0; $i < $_POST["RowCount"]; $i++) {
     $query = sprintf("INSERT INTO movie ('movie_name', 'language') VALUES ('%s', '%s')",
         mysqli_real_escape_string($_POST["Fname"]), // Escaping values before inserting.
         mysqli_real_escape_string($_POST["language"]));
     mysqli_query($con, $query);
}