【问题标题】:Using 1 (insert) button, can I insert multiple row data from an HTML table to a MySQL database table?使用 1(插入)按钮,我可以将 HTML 表中的多行数据插入 MySQL 数据库表吗?
【发布时间】:2014-11-13 06:41:26
【问题描述】:

我随机生成了一些问题,并决定将它们放在一个临时表中。现在,它已经在我的 html 表中了:

echo "<form action=# method=post>";
echo "<table>";
do{
echo "<tr>";
echo "<td>"."<input type=text value='$rows[question]' name=question>"."</td>;
echo "<td>"."<input type=text value='$rows[correct]' name=correct>"."</td>;
}while($rows=mysqli_fetch_array($rs));
echo "</table>";


echo "<input type=submit name=insert>";

echo "</form>";
?>
</body>
</html>

我想要发生的是,当我点击插入按钮 name="insert" 时,该表中的数据 [从第 1 行到最后一行] 将被插入到我的数据库“tbl_randomq”中。是否可以一键将多行数据同时插入数据库。

我尝试使用 while 循环,但它只插入来自最后一行的重复(10 次)数据。请帮忙:-)

【问题讨论】:

  • 您可以将表格数据保存在数组中,并随时使用。这是最好的方法。
  • @Sky 先生,请您出示一下...

标签: php html mysql mysqli


【解决方案1】:
do{
?>
<tr>
    <td><input type=text value='<?=$row["question"]?>' name='question[]'></td>
    <td><input type=text value='<?=$row["correct"]?>' name='correct[]'></td>    
</tr>
<?php
}while($row = mysqli_fetch_array($rs));

然后保存这个:

for ($i=0; $i<count($_POST['question']); $i++){
    $question = addslashes($_POST['question'][$i]);
    $correct = addslashes($_POST['correct'][$i]);
    mysqli_query("
                      insert into tbl_ramdomq (question, correct) 
                      values ('$question','$correct')
    "); 
}

根据需要将代码格式替换为您自己的格式。虽然对我自己来说,我更喜欢在 html 中使用短 php 标签而不是 echo,因为语法着色和更好的清晰度。

【讨论】:

  • 谢谢先生!我会试试你的答案。会不会像,从我的数据库:tbl_question 到 html 表格然后到数据库:tbl_randomq?
  • 我不确定你的数据结构是怎么做的,但是在这里你在循环中有“问题”和“正确”,所以对它们做任何你需要的事情。如果您需要传递id,您可以将其作为隐藏字段添加到表单中。
  • 好的,先生!谢谢!那个 for 循环会放在我的插入查询之后,对吧?先生非常感谢您!上帝保佑你:-)
  • 不,您应该将插入查询放入循环中。因此,您可以插入 $question$correct 的值,它们在每个循环中都会更改为它们在表中的任何值。看到了吗?
  • $sql2="insert into tbl_ramdomq (question, correct) values ('$_POST[question]','$_POST[correct]');"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 2017-08-08
  • 2021-02-19
相关资源
最近更新 更多