我正在做一个基本的HTML表格来询问人们:姓名,姓氏和收藏夹歌曲,我有1个人使用,但是我希望人们可以同时输入多个人,例如4个人。
这是我的工作HTML:
<form action='guarda.php' method='post' class="form-inline">
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="name" class="sr-only">Name</label>
<input type="text" name="name" class="form-control" id="name" placeholder="Name" required>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="surname" class="sr-only">Surname</label>
<input type="text" name="surname" class="form-control" id="surname" placeholder="Surname" required>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="song" class="sr-only">Fav Song</label>
<input type="text" name="cancion[]" class="form-control" id="name" placeholder="Your fav Song">
</div>
</div>
<center>
<input type="submit" class="btn btn-default btn-block" value="Send" >
</center>
</form>
这是我的PHP文件:
<?php
/* Attempt MySQL server connection. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
$link = mysqli_connect("localhost", "root", "", "database");
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Escape user inputs for security
$name = mysqli_real_escape_string($link, $_REQUEST['name']);
$surname = mysqli_real_escape_string($link, $_REQUEST['surname']);
$song = mysqli_real_escape_string($link, $_REQUEST['song']);
// attempt insert query execution
$sql = "INSERT INTO table (name, surname, song) VALUES ('$name', '$surname', '$song')";
if(mysqli_query($link, $sql)){
echo "Records added successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// close connection
mysqli_close($link);
?>
现在,我希望能够同时输入4个人,例如:
姓名,姓氏,歌曲
姓名,姓氏,歌曲
姓名,姓氏,歌曲
姓名,姓氏,歌曲
并将所有信息同时输入到数据库中。
我该怎么办?
谢谢
最佳答案
HTML支持数组表示法。您应该使用类似于person的数组名称,并使用输入名称作为索引。例如。:
$persons = $_POST[persons];
foreach ($persons as $person)
{
$person[surname] <-- you read it like an array and do stuff you need
}
但是您应该使用准备好的语句,这是更安全和正确的方法。见Prepared statements