hai我试图通过为每个查询插入多个行来填充表,因为我发送的数组元素以下是我的代码:
标记:
<form action="post.php" method="POST">
<h1>user sign up</h1>
name:<input type="text" name="name" id="name"/>
password:<input type="text" name="pass" id="pass"/>
<div id="container">
<a href="#"><span id="add_field">» Add your list...</span></a><br/><br/>
</div>
<input id="go" class="btn" name="btnSubmit" type="submit" value="Signup" />
</form>
脚本:
<script>
var count = 0;
$(function(){
$('#add_field').click(function(){
count +=1;
//this is for appending input type="text" with the name of fields[]
// example like this: <input id="field_"+the incremented value (1,2,3..)+"name="fields[]" type="text"/>
$('#container').append('<strong>Link #' + count + '</strong>'+ '<input id="field_' + count + '" name="fields[]' + '" type="text" /><br/>' );
});
});
</script>
php:
<?php
$db = mysqli_connect("localhost","root","","test");
error_reporting(E_ALL);
//on click of the submit button
if(isset($_POST['btnsubmit'])){
//if the fields are not empty
if(!empty($_POST['fields']) && !empty($_POST['name']) && !empty($_POST['pass'])){
//the array / dynamic field
$fields = $_POST['fields'];
//the other two normal fields
$user = $_POST['name'];
$pass = $_POST['pass'];
//looping through and inserting the rows in table
foreach($fields as $key=> $value){
$query = mysqli_query($db,"INSERT INTO sample VALUES('','$user','$pass','$value')");
if($query){
echo "added <br/>";
} else {
echo "try";
}
}//end of foreach loop
echo "user added";
} else {
echo "fill the web fields";
}//end of the !empty if statement
}//end of first if
?>
这里我想填写表格如下
如果只有一个$ _POST ['fields']输入
id | username | password | field
----------------------------------------
1 | name | password | field value
如果有多个$ _POST ['fields']输入
id | username | password | field
------------------------------------------------
1 | name | password | field value 1
2 | name 2 | password 2 | field value 2
3 | name 3 | password 3 | field value 3
等等(取决于数组大小/ ...)
答案 0 :(得分:1)
我想你的问题是如何做到这一点,因为代码没有意义。你几乎就在那里改变这个
mysqli_query($db,"INSERT INTO sample VALUES('','$user','$pass','$value')");
进入这个:
mysqli_query($db,"INSERT INTO sample (user, pass, value) VALUES(" .
mysql_real_escape_string($user) . "," .
mysql_real_escape_string($pass) . "," .
mysql_real_escape_string($value) .
")");
将(user, pass, value)
更改为您使用的列名称。