我正在做一个基本的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

07-24 09:37
查看更多