我试图一次将多行插入数据库。
用户最多可以添加5个新行,以便将血液结果插入数据库。
有一个添加更多按钮允许他们这样做。
我有一个循环来遍历每个条目,但是当我单击submit时,只会提交一个条目。第一,我不确定我哪里出了问题,任何帮助都将不胜感激。
循环在这个代码块的底部,但我不确定这就是问题所在。
<?php
session_start();
if (!isset($_SESSION["currentUserID"])) header("Location: login.php");
include('dbConnect.php');
$queryStr=("SELECT * FROM category");
$dbParams=array();
// now send the query
$results = $db->prepare($queryStr);
$results->execute($dbParams);
$dropDown = "";
foreach($results as $category) {
$dropdown .= '<option value="' . $category["category_id"] . '">' . $category["category_name"] . '</option>';
}
?>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Welcome</title>
<TITLE>Category and Test</TITLE>
<head>
<!-- Help for code to create dynamic drop downs -->
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
//Referenced for help --lines 81- 95
//https://www.codeproject.com/Questions/893365/Use-data-pulled-out-from-one-mysql-table-and-inser
//https://stackoverflow.com/questions/48270422/insert-values-into-database-from-form-with-drop-downs?noredirect=1#comment83524543_48270422
var numRows = 1;
function getTest(val,x) {
$.ajax({
type: "POST",
url: "get_test.php",
data:'category_id='+val,
success: function(data){
$("#test-list" + x).html(data);
}
});
}
function selectCategory(val) {
$("#search-box").val(val);
$("#suggesstion-box").hide();
}
// Referenced for help - https://www.youtube.com/watch?v=kBAPbCDGCuY
var maxRows=5;
var x = 1;
// add rows
$(document).ready(function(e)
{ // add new row or fields
$("#add").click(function(e)
{ // if less than 5 then continue to add a new row
if (x<=maxRows)
{ // add new row with all fields, update name with x to make unique and stop drop downs changing each others values
var html = '<div class="row" id="container"><label>Category:</label><select name="category' + x + '" id="category-list" class="demoInputBox" onChange="getTest(this.value,' + x +');"><?php echo $dropdown; ?></select><label>Test:</label><select name="test' + x + '" id="test-list' + x + '" class="demoInputBox"><option value="">Select Test</option></select><label>Result:</label><input id="resultchild" class="input" name="result' + x + '" type="double" required><label>Date:</label><input id="datechild" class="input" name="date' + x + '" type="date" required ><label>Low Boundary:</label><input id="lowchild" class="input" name="low' + x + '" type="double" required><label>High Boundary:</label><input id="highchild" class="input" name="high' + x + '" type="double" required><a href ="#" id="remove"> X </a>';
document.addTest1.count.value=x;
// update x
x++;
// add html below as new row
$("#container").append(html);
}
});
// take away rows
$("#container").on('click', '#remove', function(e)
{
$(this).parent('div').remove();
x--;
document.addTest1.count.value=x;
});
// populate values from first row
});
</script>
</head>
<body>
<!--
Reference for help -- lines 134 - 144
https://www.codeproject.com/Questions/893365/Use-data-pulled-out-from-one-mysql-table-and-inser
https://stackoverflow.com/questions/48270422/insert-values-into-database-from-form-with-drop-downs?noredirect=1#comment83524543_48270422
-->
<div class="row" id="container">
<label>Category:</label>
<select name="category0" id="category-list" class="demoInputBox" onChange="getTest(this.value,0);">
<option value="">Select Category</option>
<?php
echo $dropdown;
?>
</select>
<form action="addTest.php" method="post" name="addTest1">
<input type="hidden" name ="count" value="0">
<label>Test:</label>
<select name="test0" id="test-list0" class="demoInputBox">
<option value="">Select Test</option>
</select>
<label>Result:</label><input id="result" class="input" name="result0" type="double" required>
<label>Date:</label><input id="date" class="input" id="date" name="date0" type="date" required>
<label>Low Boundary:</label><input id="low" class="input" name="low0" type="double" required>
<label>High Boundary:</label><input id="high" class="input" name="high0" type="double" required>
<a href ="#" id="add"> Add More</a>
<input class="submit" name="submit" type="submit" value="Submit">
</div>
</form>
<?php
if(isset($_POST['submit'])){
$count = $_POST['count'];
// for loop to iterate through each new row and insert into database
for ($x=0; $x<$count; $x++) {
$currentUser = $_SESSION["currentUserID"];
$currentBloodTest = $_POST['test'.$x];
$value = $_POST['result'.$x];
$date = $_POST['date'.$x];
$low = $_POST['low'.$x];
$high = $_POST['high'.$x];
$query = $db->prepare("INSERT INTO results (user_id, bloodtest_id, date, value, low_boundary, high_boundary)
VALUES (?, ?, ?, ?, ?, ?)");
$query->execute( array($currentUser, $currentBloodTest, $date, $value, $low, $high) );
echo "<br><br><span>Data Inserted successfully...!!</span>";
} //end of for loop
}
?>
</body>
</html>
把你的html部分改成这个。
<form action="addTest.php" method="post" name="addTest1">
<input type="hidden" name ="count" value="0">
<label>Test:</label>
<select name="test0" id="test-list0" class="demoInputBox">
<option value="">Select Test</option>
</select>
<label>Result:</label><input id="result" class="input" name="result[]" type="double" required>
<label>Date:</label><input id="date" class="input" id="date" name="date[]" type="date" required>
<label>Low Boundary:</label><input id="low" class="input" name="low[]" type="double" required>
<label>High Boundary:</label><input id="high" class="input" name="high[]" type="double" required>
<a href ="#" id="add"> Add More</a>
<input class="submit" name="submit" type="submit" value="Submit">
</div>
</form>
在服务器端代码中,您应该使用foreach或使用表单输入控件名称中给定的数组。
看看这个-
我的PHP代码中的插入数据sql命令不工作。有人能帮帮忙吗? 我有一个注册表,它从输入字段(姓名、姓氏、电子邮件、用户名和密码)中获取值 用户在此字段中输入的值应保存到我的表“users”中,该表有以下列(ID[主键/INT]、name[文本]、lastname[文本]、e-mail[变量字符]、username[变量字符]和password[变量字符])。 这是我目前的代码:
问题内容: 我有一个类似于以下内容的插入语句: 我需要使用多个ID插入同一条语句。现在我有: 我只是必须运行此程序,还是有一个更精简的版本? 问题答案: 使用:
我是android新手,这是我第一次在应用程序中使用room。未执行插入操作或未创建数据库或任何其他错误。 我不知道我做错了什么,所以我需要你的帮助。 此程序正在运行,但未显示任何结果。屏幕上什么都没有显示。 这是我的代码-请让我知道此代码中的错误以及我应该如何更正它。 汽车细节。JAVA 卡多。爪哇- CarListDatabase。JAVA CarRepository.java 公共无效get
问题内容: 我知道一次插入多个数据效率更高: 在golang中该怎么做? 使用字符串拼接,但这不是很好。db.Prepare更安全吧? 我需要一个功能更安全,更高效的函数,一次插入多个数据。 问题答案: 为什么不这样呢?(在此处编写但未进行测试,因此可能存在语法错误):
root-context.xml文件是: servlet-context.xml文件是: 我的@Entity类是: 控制台输出为:
问题内容: 从Actor中读取的文件:Zac Efron 传记:他出生于加利福尼亚州的圣路易斯·奥比斯波,并在阿罗约·格兰德附近长大。在几集《夏姆兰》(2004)的客串中,他以女孩疯狂的卡梅隆·贝尔的身份参加常规演出。埃夫隆还出演过许多飞行员,例如卡尔·兰克(Carl Laemke)的《大世界》(2003)(电视)和三重播放(2004)(TV)。 More_Bio:Efron于2006年6月毕业于