使用php在多行中插入表单值

时间:2014-01-04 03:26:54

标签: php mysql sql insert bulkinsert

我有像这样的数据库结构

database structure

现在我已经设计了表单来输入不同主题的Fm和PM

entry form

现在,我如何在此数据库中插入上述表单中的值作为一次插入的多行

3 个答案:

答案 0 :(得分:1)

您可以使用以下语法一次插入多行:

INSERT INTO tablename (column1, column2)
VALUES (val1, val2),
(val1, val2);

你的相似(你可能想要添加其他列):

INSERT INTO tablename (fm, pm)
VALUES (100, 40),
(100, 60);

请参阅MySQL INSERT Syntax

答案 1 :(得分:1)

正如我可以看到你已经采取了fm和pm但你需要在这里找到数组类型找到下面的代码才能理解它

 <?php 
include_once('dbconfig.php'); 
$mysql="Select * from subjects where class_id='$class_id' "; 
$result=mysql_query($mysql); ?>

<form method='post' action='insert.php'>
  <?php  
while($row=mysql_fetch_array($result)) { 
    echo $row['subject_name']; 
?>
  <input type='text' name='fm[]' placeholder='fullmarks' class='input-small'>
  <input type='text' name='pm[]' placeholder='passmarks' class='input-small'>
  <br/>
  <?php } ?>
  <button id='classbutton' name='submit' class='btn btn-success'> Save</button>
</form>

和insert.php你可以使用像这样

for($i = 0; $i <count($_POST)-1; $i++)
{
    mysql_query("INSERT INTO `marks`(`fm`,`pm`) VALUES('".$_POST['fm'][$i]."','".$_POST['pm'][$i]."');");
}

这里标记为表名和fm,pm是表colume

答案 2 :(得分:0)

表单中的

使用像标记[subject_id]这样的数组 可以对所有受试者重复主题div

<form action="insert.php">

<div class="subject">
<input type="text" name="marks[1][fm]">
<input type="text" name="marks[1][pm]">
</div>

<input type="submit">

然后在insert.php循环中通过_POST ['marks']和foreach构造一个INSERT语句并插入该行。

我不知道你是否有实际的后端,确保你逃避输入以避免sql注入,在这里你会找到一种方法来做到这一点

http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php